6 use Test::More tests => 38;
10 my $sn = Sub::Nary->new();
17 [ sub { (1, 2, 3)[2 .. 1] }, 0 ],
21 [ sub { my $x = 1; $x = 2; 3, 4, 5; }, 3 ],
22 [ sub { do { 1; 2, 3 } }, 2 ],
23 [ sub { do { 1; 2, do { 3, do { 4 } } } }, 3 ],
26 [ sub { $x, $y }, 2 ],
28 [ sub { @a }, 'list' ],
30 [ sub { @a[1, 2] }, 2 ],
31 [ sub { @a[2 .. 4] }, 3 ],
33 [ sub { %h }, 'list' ],
35 [ sub { @h{qw/a b/} }, 2 ],
37 [ sub { $x, $a[3], $h{c} }, 3 ],
38 [ sub { $x, @a }, 'list' ],
39 [ sub { %h, $y }, 'list' ],
41 [ sub { 1 .. 3 }, 'list' ],
42 [ sub { my @a = (1 .. 4) }, 4 ],
44 [ sub { "banana" =~ /(a)/g }, 'list' ],
46 [ sub { (localtime)[0, 1, 2] }, 3 ],
48 [ sub { for (1, 2, 3) { } }, 0 ],
49 [ sub { for (1, 2, 3) { 1; } 1, 2 }, 2 ],
51 [ sub { while (1) { } }, 0 ],
52 [ sub { while (1) { 1; } 1, 2 }, 2 ],
54 [ sub { eval { } }, 0 ],
55 [ sub { eval { 1, 2 } }, 2 ],
56 [ sub { eval { }; $x, 2 }, 2 ],
57 [ sub { 1, eval { $x, eval { $h{foo} } } }, 3 ],
58 [ sub { eval { 1, do { eval { @a }, 2 } } }, 'list' ],
60 [ sub { eval '1, 2' }, 'list' ],
62 [ sub { <$x> }, 'list' ],
64 [ sub { stat $0 }, 13 ],
65 [ sub { caller 0 }, sub { my @a = caller 0; scalar @a }->() ],
66 [ sub { localtime }, do { my @a = localtime; scalar @a } ],
71 my $r = $sn->nary($_->[0]);
72 is_deeply($r, { $_->[1] => 1 }, 'list test ' . $i);