This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
dial back warnings on UNIVERSAL->import
[perl5.git] / t / op / reverse.t
CommitLineData
3168554e
JH
1#!./perl
2
3BEGIN {
4 chdir 't' if -d 't';
5 @INC = '../lib';
a8136c1e 6 require './test.pl';
3168554e
JH
7}
8
484c818f 9plan tests => 21;
3168554e 10
a8136c1e 11is(reverse("abc"), "cba");
3168554e
JH
12
13$_ = "foobar";
a8136c1e 14is(reverse(), "raboof");
3168554e
JH
15
16{
17 my @a = ("foo", "bar");
18 my @b = reverse @a;
19
a8136c1e
VP
20 is($b[0], $a[1]);
21 is($b[1], $a[0]);
3168554e
JH
22}
23
24{
484c818f
VP
25 my @a = (1, 2, 3, 4);
26 @a = reverse @a;
27 is("@a", "4 3 2 1");
28
29 delete $a[1];
30 @a = reverse @a;
31 ok(!exists $a[2]);
32 is($a[0] . $a[1] . $a[3], '124');
33
34 @a = (5, 6, 7, 8, 9);
35 @a = reverse @a;
36 is("@a", "9 8 7 6 5");
37
38 delete $a[3];
39 @a = reverse @a;
40 ok(!exists $a[1]);
41 is($a[0] . $a[2] . $a[3] . $a[4], '5789');
42
43 delete $a[2];
44 @a = reverse @a;
45 ok(!exists $a[2] && !exists $a[3]);
46 is($a[0] . $a[1] . $a[4], '985');
47}
48
49use Tie::Array;
50
51{
52 tie my @a, 'Tie::StdArray';
53
54 @a = (1, 2, 3, 4);
55 @a = reverse @a;
56 is("@a", "4 3 2 1");
57
58 delete $a[1];
59 @a = reverse @a;
60 ok(!exists $a[2]);
61 is($a[0] . $a[1] . $a[3], '124');
62
63 @a = (5, 6, 7, 8, 9);
64 @a = reverse @a;
65 is("@a", "9 8 7 6 5");
66
67 delete $a[3];
68 @a = reverse @a;
69 ok(!exists $a[1]);
70 is($a[0] . $a[2] . $a[3] . $a[4], '5789');
71
72 delete $a[2];
73 @a = reverse @a;
74 ok(!exists $a[2] && !exists $a[3]);
75 is($a[0] . $a[1] . $a[4], '985');
76}
77
78{
3168554e
JH
79 # Unicode.
80
81 my $a = "\x{263A}\x{263A}x\x{263A}y\x{263A}";
82 my $b = scalar reverse($a);
83 my $c = scalar reverse($b);
a8136c1e 84 is($a, $c);
3168554e 85}