summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/tests/array/sort.asy
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/asymptote/tests/array/sort.asy')
-rw-r--r--Build/source/utils/asymptote/tests/array/sort.asy39
1 files changed, 39 insertions, 0 deletions
diff --git a/Build/source/utils/asymptote/tests/array/sort.asy b/Build/source/utils/asymptote/tests/array/sort.asy
new file mode 100644
index 00000000000..03c585b717d
--- /dev/null
+++ b/Build/source/utils/asymptote/tests/array/sort.asy
@@ -0,0 +1,39 @@
+import TestLib;
+import math;
+
+string[] a={"bob","alice","pete","alice"};
+string[] b={"alice","alice","bob","pete"};
+
+StartTest("sort");
+
+assert(all(sort(a) == b));
+
+EndTest();
+
+StartTest("search");
+
+assert(search(b,"a") == -1);
+assert(search(b,"bob") == 2);
+assert(search(b,"z") == b.length-1);
+
+EndTest();
+
+StartTest("sort2");
+
+string[][] a={{"bob","9"},{"alice","5"},{"pete","7"},{"alice","4"}};
+string[][] b={{"alice","4"},{"alice","5"},{"bob","9"},{"pete","7"}};
+
+assert(sort(a) == b);
+
+EndTest();
+
+pair[] a={(2,1),(0,0),(1,1),(1,0)};
+pair[] b={(0,0),(1,0),(1,1),(2,1)};
+
+StartTest("lexicographical sort");
+assert(all(sort(a,lexorder) == b));
+EndTest();
+
+StartTest("lexicographical search");
+assert(search(b,(1,0),lexorder) == 1);
+EndTest();