Commit | Line | Data |
---|---|---|
48cdf507 GA |
1 | #!./perl |
2 | ||
50528de0 | 3 | print "1..18\n"; |
48cdf507 GA |
4 | |
5 | @a = (1..10); | |
6 | ||
7 | sub j { join(":",@_) } | |
8 | ||
9 | print "not " unless j(splice(@a,@a,0,11,12)) eq "" && j(@a) eq j(1..12); | |
10 | print "ok 1\n"; | |
11 | ||
12 | print "not " unless j(splice(@a,-1)) eq "12" && j(@a) eq j(1..11); | |
13 | print "ok 2\n"; | |
14 | ||
15 | print "not " unless j(splice(@a,0,1)) eq "1" && j(@a) eq j(2..11); | |
16 | print "ok 3\n"; | |
17 | ||
18 | print "not " unless j(splice(@a,0,0,0,1)) eq "" && j(@a) eq j(0..11); | |
19 | print "ok 4\n"; | |
20 | ||
21 | print "not " unless j(splice(@a,5,1,5)) eq "5" && j(@a) eq j(0..11); | |
22 | print "ok 5\n"; | |
23 | ||
8cbc2e3b | 24 | print "not " unless j(splice(@a, @a, 0, 12, 13)) eq "" && j(@a) eq j(0..13); |
48cdf507 GA |
25 | print "ok 6\n"; |
26 | ||
27 | print "not " unless j(splice(@a, -@a, @a, 1, 2, 3)) eq j(0..13) && j(@a) eq j(1..3); | |
28 | print "ok 7\n"; | |
29 | ||
30 | print "not " unless j(splice(@a, 1, -1, 7, 7)) eq "2" && j(@a) eq j(1,7,7,3); | |
31 | print "ok 8\n"; | |
32 | ||
33 | print "not " unless j(splice(@a,-3,-2,2)) eq j(7) && j(@a) eq j(1,2,7,3); | |
34 | print "ok 9\n"; | |
f507e126 RS |
35 | |
36 | # Bug 20000223.001 - no test for splice(@array). Destructive test! | |
37 | print "not " unless j(splice(@a)) eq j(1,2,7,3) && j(@a) eq ''; | |
38 | print "ok 10\n"; | |
39 | ||
aae9faae DL |
40 | # Tests 11 and 12: |
41 | # [ID 20010711.005] in Tie::Array, SPLICE ignores context, breaking SHIFT | |
42 | ||
43 | my $foo; | |
44 | ||
45 | @a = ('red', 'green', 'blue'); | |
46 | $foo = splice @a, 1, 2; | |
47 | print "not " unless $foo eq 'blue'; | |
48 | print "ok 11\n"; | |
49 | ||
50 | @a = ('red', 'green', 'blue'); | |
51 | $foo = shift @a; | |
52 | print "not " unless $foo eq 'red'; | |
53 | print "ok 12\n"; | |
f507e126 | 54 | |
50528de0 WL |
55 | # Bug [perl #30568] - insertions of deleted elements |
56 | @a = (1, 2, 3); | |
57 | splice( @a, 0, 3, $a[1], $a[0] ); | |
58 | print "not " unless j(@a) eq j(2,1); | |
59 | print "ok 13\n"; | |
60 | ||
61 | @a = (1, 2, 3); | |
62 | splice( @a, 0, 3 ,$a[0], $a[1] ); | |
63 | print "not " unless j(@a) eq j(1,2); | |
64 | print "ok 14\n"; | |
65 | ||
66 | @a = (1, 2, 3); | |
67 | splice( @a, 0, 3 ,$a[2], $a[1], $a[0] ); | |
68 | print "not " unless j(@a) eq j(3,2,1); | |
69 | print "ok 15\n"; | |
70 | ||
71 | @a = (1, 2, 3); | |
72 | splice( @a, 0, 3, $a[0], $a[1], $a[2], $a[0], $a[1], $a[2] ); | |
73 | print "not " unless j(@a) eq j(1,2,3,1,2,3); | |
74 | print "ok 16\n"; | |
75 | ||
76 | @a = (1, 2, 3); | |
77 | splice( @a, 1, 2, $a[2], $a[1] ); | |
78 | print "not " unless j(@a) eq j(1,3,2); | |
79 | print "ok 17\n"; | |
80 | ||
81 | @a = (1, 2, 3); | |
82 | splice( @a, 1, 2, $a[1], $a[1] ); | |
83 | print "not " unless j(@a) eq j(1,2,2); | |
84 | print "ok 18\n"; |