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();