]> git.vpit.fr Git - perl/modules/Sub-Nary.git/blobdiff - t/21-list.t
Update VPIT::TestHelpers to 15e8aee3
[perl/modules/Sub-Nary.git] / t / 21-list.t
index 71edefbdefb21cdf8c74049df2632aefda69e75f..7fa217bc8c5673ec3ed40b402298c36be741f9b7 100644 (file)
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 28;
+use Test::More tests => 44;
 
 use Sub::Nary;
 
@@ -25,21 +25,31 @@ my @tests = (
  [ sub { $x },     1 ],
  [ sub { $x, $y }, 2 ],
 
- [ sub { @a },         'list' ],
- [ sub { $a[0] },      1 ],
- [ sub { @a[1, 2] },   2 ],
- [ sub { @a[2 .. 4] }, 3 ],
+ [ sub { @a },               'list' ],
+ [ sub { $a[0] },            1 ],
+ [ sub { @a[1, 2] },         2 ],
+ [ sub { @a[2 .. 4] },       3 ],
+ [ sub { @a[1, 4 .. 7, 2] }, 6 ],
 
  [ sub { %h },          'list' ],
  [ sub { $h{a} },       1 ],
- [ sub { @h{qw/a b/} }, 2 ],
+ [ sub { @h{qw<a b>} }, 2 ],
+ [ sub { keys %h },     'list' ],
+ [ sub { values %h },   'list' ],
 
  [ sub { $x, $a[3], $h{c} }, 3 ],
  [ sub { $x, @a },           'list' ],
  [ sub { %h, $y },           'list' ],
 
- [ sub { 1 .. 3 },           'list' ],
- [ sub { my @a = (1 .. 4) }, 4 ],
+ [ sub { 2 .. 4 },                      3 ],
+ [ sub { $x .. 3 },                     'list' ],
+ [ sub { 1 .. $x },                      'list' ],
+ [ sub { '2foo' .. 4 },                  3 ],
+ [ sub { my @a = (7, 8); @a .. 4 },      'list' ],
+ [ sub { my @a = (2 .. 5) },             4 ],
+ [ sub { my @b; my @a = @b = (2 .. 5) }, 4 ],
+ [ sub { my @a =()= (2 .. 5) },          0 ],
+ [ sub { my $x =()= (2 .. 5) },          1 ],
 
  [ sub { "banana" =~ /(a)/g }, 'list' ],
 
@@ -50,11 +60,20 @@ my @tests = (
 
  [ sub { while (1) { } },         0 ],
  [ sub { while (1) { 1; } 1, 2 }, 2 ],
+
+ [ sub { eval { } },                          0 ],
+ [ sub { eval { 1, 2 } },                     2 ],
+ [ sub { eval { }; $x, 2 },                   2 ],
+ [ sub { 1, eval { $x, eval { $h{foo} } } },  3 ],
+ [ sub { eval { 1, do { eval { @a }, 2 } } }, 'list' ],
+
+ [ sub { eval '1, 2' }, 'list' ],
 );
 
 my $i = 1;
 for (@tests) {
  my $r = $sn->nary($_->[0]);
- is_deeply($r, { $_->[1] => 1 }, 'list test ' . $i);
+ my $exp = ref $_->[1] ? $_->[1] : { $_->[1] => 1 };
+ is_deeply($r, $exp, 'list test ' . $i);
  ++$i;
 }