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
  
test_true([["$Id: testsuite.in,v 1.1 2002/08/02 23:22:36 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 
 
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.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.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 })) 
 
test_any([[ 
  random_seed(4711); 
  array b = Array.shuffle(Array.enumerate(1000)); 
  random_seed(4711); 
  dnl There is a chance in 1000! (aprox. 4E2568) that this fails of 
  dnl 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 - Colors 
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}))