1
  
2
  
3
  
4
  
5
  
6
  
7
  
8
  
9
  
10
  
11
  
12
  
13
  
14
  
15
  
16
  
17
  
18
  
19
  
20
  
21
  
22
  
23
  
24
  
25
  
26
  
27
  
28
  
29
  
30
  
31
  
32
  
33
  
34
  
35
  
36
  
37
  
38
  
39
  
40
  
41
  
42
  
43
  
44
  
45
  
46
  
47
  
48
  
49
  
50
  
51
  
52
  
53
  
54
  
55
  
56
  
57
  
58
  
59
  
60
  
61
  
62
  
63
  
64
  
65
  
66
  
67
  
68
  
69
  
70
  
71
  
72
  
73
  
74
  
75
  
76
  
77
  
78
  
79
  
80
  
81
  
82
  
83
  
84
  
85
  
86
  
87
  
88
  
89
  
90
  
91
  
92
  
93
  
94
  
95
  
96
  
97
  
98
  
99
  
100
  
101
  
102
  
103
  
104
  
105
  
106
  
107
  
108
  
109
  
110
  
111
  
112
  
113
  
114
  
115
  
116
  
117
  
118
  
119
  
120
  
121
  
122
  
123
  
124
  
125
  
dnl $Id: testsuite.in,v 1.2 2002/10/14 13:48:12 nilsson Exp $ 
 
dnl - Array 
 
dnl Array.diff 
dnl Array.diff_longest_sequence 
dnl Array.diff_compare_table 
dnl Array.longest_ordered_sequence 
dnl Array.interleave_array 
dnl Array.sort 
 
test_equal(Array.everynth("0123456789"/""), 
  ({ "0", "2", "4", "6", "8"})) 
test_equal(Array.everynth("0123456789"/"",3), 
  ({ "0", "3", "6", "9"})) 
test_equal(Array.everynth("0123456789"/"",3,4), 
  ({ "4", "7"})) 
 
test_equal(Array.splice(({7,8,99}),({"h","h",99})), 
        ({7,"h",8,"h",99,99})) 
test_equal(Array.splice(({7,8}),({"h","h",99})), 
        ({7,"h",8,"h"})) 
test_equal(Array.splice(({7,8,99}),({"h","h",99}),({"g",({"fg"}),97})), 
        ({7,"h","g",8,"h",({"fg"}),99,99,97})) 
test_equal(Array.splice(({7,"foo"})), 
        ({7,"foo"})) 
test_equal(Array.splice(), 
        ({})) 
test_equal(Array.splice(({})), 
        ({})) 
 
test_equal(Array.transpose( ({ ({ 1,2,3}), ({4,5,6}) }) ), 
        ({ ({1,4}), ({2,5}), ({3,6}) })) 
test_equal([[Array.transpose(({catch{throw(({""}));},({1,2})[1..]}))]], 
           [[ ({ ({ "", 2 }) }) ]]) 
 
test_equal(Array.uniq( ({ 1,1,2,2,3,3,4,1,2,3,3,2,1,2,1 }) ), 
        ({1,2,3,4})) 
test_equal(Array.uniq( ({ "a",5,1.0,5,"b","a" }) ), 
        ({"a",5,1.0,"b"})) 
 
test_equal(Array.filter( ({ 1,2,3,4,5,6, }), lambda(int i) { return 0; } ), 
        ({})) 
test_equal(Array.filter( ({ 1,2,3,4,5,6, }), lambda(int i) { return 1; } ), 
        ({1,2,3,4,5,6})) 
test_equal(Array.filter( ({ 1,2,3,4,5,6, }), lambda(int i) { return i%2; } ), 
        ({1,3,5})) 
 
test_equal(Array.permute( ({ 1,2 }), 0 ), 
        ({ 1,2 })) 
test_equal(Array.permute( ({ 1,2 }), 1 ), 
        ({ 2,1 })) 
test_equal(Array.permute( ({ 1,2,3,4,5,6,7,8,9,10 }), 3628800), 
        ({ 1,2,3,4,5,6,7,8,9,10 })) 
 
test_equal(Array.enumerate(5), ({ 0,1,2,3,4 })) 
test_equal(Array.enumerate(5,2), ({ 0,2,4,6,8 })) 
test_equal(Array.enumerate(5,2,7), ({ 7,9,11,13,15 })) 
test_equal(Array.enumerate(5,2,7,`-), ({ 7,5,3,1,-1 })) 
 
dnl Array.reduce 
dnl Array.rreduce 
 
test_any([[ 
  random_seed(4711); 
  array b = Array.shuffle(Array.enumerate(1000)); 
  random_seed(4711); 
  // There is a chance in 1000! (aprox. 4E2568) that this fails of 
  // natural causes. 
  return equal(b, Array.shuffle(Array.enumerate(1000))) && 
               !equal(Array.enumerate(1000),b); 
]], 1); 
test_true( equal(Array.enumerate(1000),sort(Array.shuffle(Array.enumerate(1000)))) ) 
 
dnl Array.search_array 
dnl Array.sum_arrays 
dnl Array.sort_array 
dnl Array.columns 
dnl Array.transpose_old 
dnl Array.diff3 
dnl Array.diff3_old 
dnl Array.dwim_sort_func 
dnl Array.lyskom_sort_func 
dnl Array.flatten 
dnl Array.sum 
dnl Array.uniq2 
 
test_equal([[ Array.arrayify( ({1,2,3}) ) ]],[[ ({1,2,3}) ]]) 
test_equal([[ Array.arrayify( 1 ) ]],[[ ({1}) ]]) 
test_equal([[ Array.arrayify( 0 ) ]],[[ ({0}) ]]) 
test_equal([[ Array.arrayify( UNDEFINED ) ]],[[ ({}) ]]) 
 
dnl Array.oid_sort_func 
dnl Array.greedy_diff 
dnl Array.count 
 
test_equal(Array.common_prefix(({ "soliloquise"/1 })), "soliloquise"/1) 
test_equal(Array.common_prefix(({ "muzzle"/1, "muzzy"/1 })), "muzz"/1) 
test_equal(Array.common_prefix(({ "labyrinth"/1, "diatom"/1 })), ({})) 
test_equal(Array.common_prefix(({ "abc"/1, "abc"/1, "abc"/1 })), "abc"/1) 
test_equal(Array.common_prefix(({})), ({})) 
 
 
dnl - Colors 
test_equal(Colors.parse_color(""),({0,0,0})) 
test_equal(Colors.parse_color("red"),({255,0,0})) 
test_equal(Colors.parse_color("RED"),({255,0,0})) 
test_equal(Colors.parse_color("lightred"),({255,61,61})) 
test_equal(Colors.parse_color("LIGHT RED"),({255,61,61})) 
test_equal(Colors.parse_color("#ff0000"),({255,0,0})) 
test_equal(Colors.parse_color("ff0000"),({255,0,0})) 
test_equal(Colors.parse_color("@0,255,255"),({255,0,0})) 
test_equal(Colors.parse_color("%0,100,100,0"),({255,0,0})) 
test_equal(Colors.rgb_to_hsv(255,0,0),({0,255,255})) 
test_equal(Colors.hsv_to_rgb(0,255,255),({255,0,0})) 
test_equal(Colors.rgb_to_cmyk(255,0,0),({0,100,100,0})) 
test_equal(Colors.cmyk_to_rgb(0,100,100,0),({255,0,0})) 
 
dnl - Mapping 
dnl Mapping.delete 
dnl Mapping.Iterator 
 
dnl - Multiset 
dnl Multiset.Iterator