diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2011-04-07 21:44:53 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2011-04-07 21:44:53 +0300 |
commit | c0583c31b8d47bd55e9340e7434cf9ccf7336f6d (patch) | |
tree | 6d54ecc869334cafeaadaca562a54f1bd2b4d717 /test | |
parent | 00068b77275315c8c16e32c39af376dfcf5a2374 (diff) | |
download | egawk-c0583c31b8d47bd55e9340e7434cf9ccf7336f6d.tar.gz egawk-c0583c31b8d47bd55e9340e7434cf9ccf7336f6d.tar.bz2 egawk-c0583c31b8d47bd55e9340e7434cf9ccf7336f6d.zip |
More improvements to array sorting.
Diffstat (limited to 'test')
-rw-r--r-- | test/ChangeLog | 6 | ||||
-rw-r--r-- | test/arraysort.awk | 84 | ||||
-rw-r--r-- | test/arraysort.ok | 53 |
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 |