1load('string.js'); 2load('array.js'); 3 4function test_indexOf() { 5 var a1 = ['foo', 'bar', 'baz']; 6 testing.assertEquals(array.indexOf(a1, 'foo'), 0); 7 testing.assertEquals(array.indexOf(a1, 'qux'), -1); 8}; 9 10function test_removeDoubles() { 11 var a1 = ['foo', 'bar', 'baz']; 12 testing.assertEquals(array.removeDoubles(a1), a1); 13 14 var a2 = ['foo', 'bar', 'foo', 'baz', 'bar', 'baz']; 15 testing.assertEquals(array.removeDoubles(a2), a1); 16 17 var a3 = ['foo', 'foo', 'foo', 'foo']; 18 testing.assertEquals(array.removeDoubles(a3), ['foo']); 19 20 var a4 = []; 21 testing.assertEquals(array.removeDoubles(a4), []); 22}; 23 24function test_map() { 25 var a1 = ['foo', 'bar', 'baz']; 26 array.map(a1, function(x) {return x.charAt(0)}); 27 testing.assertEquals(a1, ['f', 'b', 'b']); 28}; 29 30function test_reversed() { 31 var a1 = ['foo', 'bar', 'baz']; 32 testing.assertEquals(array.reversed(a1), ['baz', 'bar', 'foo']); 33}; 34 35function test_iterate() { 36 var a = ['foo', 'bar', 'baz']; 37 var expected = ['foo', 'bar', 'baz', undefined]; 38 for (var n=0; n < 2; n++) { 39 for (var i=0; i < expected.length; i++) { 40 testing.assertEquals(array.iterate(a), expected[i]); 41 }; 42 }; 43}; 44 45function test_iterator() { 46 var a = ['foo', 'bar', 'baz']; 47 var expected = ['foo', 'bar', 'baz', undefined]; 48 for (var n=0; n < 2; n++) { 49 for (var i=0; i < expected.length; i++) { 50 if (i === undefined) { 51 testing.assertThrows(array.StopIteration, array.iterate, array, 52 a); 53 } else { 54 testing.assertEquals(expected[i], array.iterate(a)); 55 }; 56 }; 57 }; 58}; 59 60