4 assert("Array::try_convert") do
5 Array.try_convert([1]) == [1] and
6 Array.try_convert("1").nil?
9 assert("Array#assoc") do
10 s1 = [ "colors", "red", "blue", "green" ]
11 s2 = [ "letters", "a", "b", "c" ]
15 a.assoc("letters") == [ "letters", "a", "b", "c" ] and
20 a = [ "a", "b", "c", "d", "e" ]
21 a.at(0) == "a" and a.at(-1) == "e"
24 assert("Array#rassoc") do
25 a = [ [ 1, "one"], [2, "two"], [3, "three"], ["ii", "two"] ]
27 a.rassoc("two") == [2, "two"] and
31 assert("Array#uniq!") do
37 assert("Array#uniq") do
39 a.uniq == [1, 2, 3] && a == [1, 2, 3, 1]
53 (a - b) == [2, 3] and e1.class == TypeError and a == [1, 2, 3, 1]
67 (a | b) == [1, 2, 3, 4] and e1.class == TypeError and a == [1, 2, 3, 1]
81 (a & b) == [1] and e1.class == TypeError and a == [1, 2, 3, 1]
84 assert("Array#flatten") do
85 [1, 2, "3", {4=>5}, :'6'] == [1, 2, "3", {4=>5}, :'6'].flatten and
86 [1, 2, 3, 4, 5, 6] == [1, 2, [3, 4, 5], 6].flatten and
87 [1, 2, 3, 4, 5, 6] == [1, 2, [3, [4, 5], 6]].flatten and
88 [1, [2, [3, [4, [5, [6]]]]]] == [1, [2, [3, [4, [5, [6]]]]]].flatten(0) and
89 [1, 2, [3, [4, [5, [6]]]]] == [1, [2, [3, [4, [5, [6]]]]]].flatten(1) and
90 [1, 2, 3, [4, [5, [6]]]] == [1, [2, [3, [4, [5, [6]]]]]].flatten(2) and
91 [1, 2, 3, 4, [5, [6]]] == [1, [2, [3, [4, [5, [6]]]]]].flatten(3) and
92 [1, 2, 3, 4, 5, [6]] == [1, [2, [3, [4, [5, [6]]]]]].flatten(4) and
93 [1, 2, 3, 4, 5, 6] == [1, [2, [3, [4, [5, [6]]]]]].flatten(5)
96 assert("Array#flatten!") do
97 [1, 2, 3, 4, 5, 6] == [1, 2, [3, [4, 5], 6]].flatten!
100 assert("Array#compact") do
101 a = [1, nil, "2", nil, :t, false, nil]
102 a.compact == [1, "2", :t, false] && a == [1, nil, "2", nil, :t, false, nil]
105 assert("Array#compact!") do
106 a = [1, nil, "2", nil, :t, false, nil]
108 a == [1, "2", :t, false]
111 assert("Array#fetch") do
112 a = [ 11, 22, 33, 44 ]
113 assert_equal 22, a.fetch(1)
114 assert_equal 44, a.fetch(-1)
115 assert_equal 'cat', a.fetch(4, 'cat')
117 a.fetch(100) { |i| ret = i }
118 assert_equal 100, ret
119 assert_raise(IndexError) { a.fetch(100) }
122 assert("Array#fill") do
123 a = [ "a", "b", "c", "d" ]
124 assert_equal ["x", "x", "x", "x"], a.fill("x")
125 assert_equal ["x", "x", "x", "w"], a.fill("w", -1)
126 assert_equal ["x", "x", "z", "z"], a.fill("z", 2, 2)
127 assert_equal ["y", "y", "z", "z"], a.fill("y", 0..1)
128 assert_equal [0, 1, 4, 9], a.fill { |i| i*i }
129 assert_equal [0, 1, 8, 27], a.fill(-2) { |i| i*i*i }
130 assert_equal [0, 2, 3, 27], a.fill(1, 2) { |i| i+1 }
131 assert_equal [1, 2, 3, 27], a.fill(0..1) { |i| i+1 }
132 assert_raise(ArgumentError) { a.fill }