aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2011-04-07 21:44:53 +0300
committerArnold D. Robbins <arnold@skeeve.com>2011-04-07 21:44:53 +0300
commitc0583c31b8d47bd55e9340e7434cf9ccf7336f6d (patch)
tree6d54ecc869334cafeaadaca562a54f1bd2b4d717 /test
parent00068b77275315c8c16e32c39af376dfcf5a2374 (diff)
downloadegawk-c0583c31b8d47bd55e9340e7434cf9ccf7336f6d.tar.gz
egawk-c0583c31b8d47bd55e9340e7434cf9ccf7336f6d.tar.bz2
egawk-c0583c31b8d47bd55e9340e7434cf9ccf7336f6d.zip
More improvements to array sorting.
Diffstat (limited to 'test')
-rw-r--r--test/ChangeLog6
-rw-r--r--test/arraysort.awk84
-rw-r--r--test/arraysort.ok53
3 files changed, 133 insertions, 10 deletions
diff --git a/test/ChangeLog b/test/ChangeLog
index ee4c679d..2f5a461b 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,6 +1,10 @@
+Thu Apr 7 21:44:06 2011 Arnold D. Robbins <arnold@skeeve.com>
+
+ * arraysort.awk, arraysort.ok: Added more test cases.
+
Fri Apr 1 11:56:54 2011 Arnold D. Robbins <arnold@skeeve.com>
- * arraysort.awk, arraysort.ok: New files from John Haque,
+ * arraysort.awk, arraysort.ok: New files from John Haque,
edited somewhat.
* Makefile.am (arraysort): New test.
diff --git a/test/arraysort.awk b/test/arraysort.awk
index 28535528..912d5880 100644
--- a/test/arraysort.awk
+++ b/test/arraysort.awk
@@ -1,11 +1,81 @@
-# Date: Thu, 31 Mar 2011 12:29:09 -0600
# From: j.eh@mchsi.com
+# March and April 2010
-BEGIN { a[100]=a[1]=a["x"]=a["y"]=1; PROCINFO["sorted_in"]="num";
-for (i in a) print i, a[i] }
+BEGIN {
+ print "--- test1 ---"
+ a[1] = b[3] = 5
+ a[2] = b[2] = "3D"
+ a[3] = b[1] = 10
+ asort(a)
+ asort(b)
+ for (i = 1; i <= 3; ++i)
+ printf(" %2s %-2s\n", (a[i] ""), (b[i] ""))
-BEGIN { a[100]=a[1]=a["x"]=1; PROCINFO["sorted_in"]="num";
-for (i in a) print i, a[i] }
+ delete a
+ delete b
+}
-BEGIN { a[0]=a[100]=a[1]=a["x"]=1; PROCINFO["sorted_in"]="num";
-for (i in a) print i, a[i] }
+BEGIN {
+ print "--- test2 ---"
+ a[100] = a[1] = a["x"] = a["y"] = 1
+ PROCINFO["sorted_in"] = "num"
+ for (i in a)
+ print i, a[i]
+ delete a
+}
+
+BEGIN {
+ print "--- test3 ---"
+ a[100] = a[1] = a["x"] = 1
+ PROCINFO["sorted_in"] = "num"
+ for (i in a)
+ print i, a[i]
+ delete a
+}
+
+BEGIN {
+ print "--- test4 ---"
+ a[0] = a[100] = a[1] = a["x"] = 1
+ PROCINFO["sorted_in"] = "num"
+ for (i in a)
+ print i, a[i]
+ delete a
+}
+
+BEGIN {
+ print "--- test5 ---"
+ a[""] = a["y"] = a[0] = 1
+ PROCINFO["sorted_in"] = "num"
+ for (i in a)
+ print i, a[i]
+ delete a
+}
+
+BEGIN {
+ print "--- test6 ---"
+ a[2] = a[1] = a[4] = a["3 "] = 1
+ PROCINFO["sorted_in"] = "num"
+ for (i in a)
+ print "\""i"\""
+ delete a
+}
+
+
+BEGIN {
+ print "--- test7 ---"
+ n = split(" 4 \n 3\n3D\nD3\n3\n0\n2\n4\n1\n5", a, "\n")
+ for (i = 1; i <= n; i++)
+ b[a[i]] = a[i]
+ print "--asc ind str--"
+ PROCINFO["sorted_in"] = "asc ind str"
+ for (i in b)
+ print "|"i"|"b[i]
+ print "--asc ind num--"
+ PROCINFO["sorted_in"] = "asc ind num"
+ for (i in b)
+ print "|"i"|"b[i]
+ print "--asc val num--"
+ PROCINFO["sorted_in"] = "asc val num"
+ for (i in b)
+ print "|"i"|"b[i]
+}
diff --git a/test/arraysort.ok b/test/arraysort.ok
index 2306e8a9..bf48ecda 100644
--- a/test/arraysort.ok
+++ b/test/arraysort.ok
@@ -1,13 +1,62 @@
+--- test1 ---
+ 5 5
+ 10 10
+ 3D 3D
+--- test2 ---
x 1
y 1
1 1
100 1
+--- test3 ---
x 1
-y 1
1 1
100 1
+--- test4 ---
0 1
x 1
-y 1
1 1
100 1
+--- test5 ---
+ 1
+0 1
+y 1
+--- test6 ---
+"1"
+"2"
+"3 "
+"4"
+--- test7 ---
+--asc ind str--
+| 3| 3
+| 4 | 4
+|0|0
+|1|1
+|2|2
+|3|3
+|3D|3D
+|4|4
+|5|5
+|D3|D3
+--asc ind num--
+|0|0
+|D3|D3
+|1|1
+|2|2
+| 3| 3
+|3|3
+|3D|3D
+| 4 | 4
+|4|4
+|5|5
+--asc val num--
+gawk: arraysort.awk:79: warning: `PROCINFO["sorted_in"]': sorting by value can't be forced to use numeric comparison
+|4|4
+|5|5
+|D3|D3
+|3D|3D
+| 3| 3
+|0|0
+|1|1
+|2|2
+|3|3
+| 4 | 4