This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
t/op/auto.pl using test.pl
[perl5.git] / t / op / auto.t
1 #!./perl
2
3 BEGIN {
4     chdir 't' if -d 't';
5     @INC = qw(. ../lib);
6 }
7
8 require "test.pl";
9 plan( tests => 37 );
10
11 $x = 10000;
12 cmp_ok(0 + ++$x - 1,'==',10000,'scalar ++x - 1');
13 cmp_ok(0 + $x-- - 1,'==',10000,'scalar x-- - 1');
14 cmp_ok(1 * $x,      '==',10000,'scalar 1 * x');
15 cmp_ok(0 + $x-- - 0,'==',10000,'scalar x-- - 0');
16 cmp_ok(1 + $x,      '==',10000,'scalar 1 + x');
17 cmp_ok(1 + $x++,    '==',10000,'scalar 1 + x++');
18 cmp_ok(0 + $x,      '==',10000,'scalar x');
19 cmp_ok(0 + --$x + 1,'==',10000,'scalar --x + 1');
20 cmp_ok(0 + ++$x + 0,'==',10000,'scalar ++x + 0');
21 cmp_ok($x,          '==',10000,'scalar x final');
22
23 $x[0] = 10000;
24 cmp_ok(0 + ++$x[0] - 1,'==',10000,'aelem ++x - 1');
25 cmp_ok(0 + $x[0]-- - 1,'==',10000,'aelem x-- - 1');
26 cmp_ok(1 * $x[0],      '==',10000,'aelem 1 * x');
27 cmp_ok(0 + $x[0]-- - 0,'==',10000,'aelem x-- - 0');
28 cmp_ok(1 + $x[0],      '==',10000,'aelem 1 + x');
29 cmp_ok(1 + $x[0]++,    '==',10000,'aelem 1 + x++');
30 cmp_ok(0 + $x[0],      '==',10000,'aelem x');
31 cmp_ok(0 + --$x[0] + 1,'==',10000,'aelem --x + 1');
32 cmp_ok(0 + ++$x[0] + 0,'==',10000,'aelem ++x + 0');
33 cmp_ok($x[0],          '==',10000,'aelem x final');
34
35 $x{0} = 10000;
36 cmp_ok(0 + ++$x{0} - 1,'==',10000,'helem ++x - 1');
37 cmp_ok(0 + $x{0}-- - 1,'==',10000,'helem x-- - 1');
38 cmp_ok(1 * $x{0},      '==',10000,'helem 1 * x');
39 cmp_ok(0 + $x{0}-- - 0,'==',10000,'helem x-- - 0');
40 cmp_ok(1 + $x{0},      '==',10000,'helem 1 + x');
41 cmp_ok(1 + $x{0}++,    '==',10000,'helem 1 + x++');
42 cmp_ok(0 + $x{0},      '==',10000,'helem x');
43 cmp_ok(0 + --$x{0} + 1,'==',10000,'helem --x + 1');
44 cmp_ok(0 + ++$x{0} + 0,'==',10000,'helem ++x + 0');
45 cmp_ok($x{0},          '==',10000,'helem x final');
46
47 # test magical autoincrement
48
49 cmp_ok(++($foo = '99'), 'eq','100','99 incr 100');
50 cmp_ok(++($foo = 'a0'), 'eq','a1','a0 incr a1');
51 cmp_ok(++($foo = 'Az'), 'eq','Ba','Az incr Ba');
52 cmp_ok(++($foo = 'zz'), 'eq','aaa','zzz incr aaa');
53 cmp_ok(++($foo = 'A99'),'eq','B00','A99 incr B00');
54 cmp_ok(++($foo = 'zi'), 'eq','zj','zi incr zj (EBCDIC i,j non-contiguous check)');
55 cmp_ok(++($foo = 'zr'), 'eq','zs','zr incr zs (EBCDIC r,s non-contiguous check)');