X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Finfo.t;fp=t%2Finfo.t;h=683fa154273109308c5907b8f3b686ede7db080b;hb=ebdc721b189a191184af4bbb1d405ab4ad33a183;hp=c670cefe471e07591bee62e597a7243d6f3d353a;hpb=33bb66c08aea26bd5788d9b0e812076fcb49452a;p=p5sagit%2FFunction-Parameters.git diff --git a/t/info.t b/t/info.t index c670cef..683fa15 100644 --- a/t/info.t +++ b/t/info.t @@ -2,10 +2,12 @@ use warnings FATAL => 'all'; use strict; -use Test::More tests => 104; +use Test::More tests => 122; use Function::Parameters; +sub Inf () { 0 + 'Inf' } + fun foo($pr1, $pr2, $po1 = 1, $po2 = 2, :$no1 = 3, :$no2 = 4, %r) {} { @@ -21,6 +23,8 @@ fun foo($pr1, $pr2, $po1 = 1, $po2 = 2, :$no1 = 3, :$no2 = 4, %r) {} is_deeply [$info->named_optional], [qw($no1 $no2)]; is scalar $info->named_optional, 2; is $info->slurpy, '%r'; + is $info->args_min, 2; + is $info->args_max, Inf; } { @@ -36,6 +40,8 @@ fun foo($pr1, $pr2, $po1 = 1, $po2 = 2, :$no1 = 3, :$no2 = 4, %r) {} is_deeply [$info->named_optional], []; is scalar $info->named_optional, 0; is $info->slurpy, undef; + is $info->args_min, 5; + is $info->args_max, Inf; } sub bar {} @@ -59,6 +65,8 @@ method baz($class: $po1 = 1, $po2 = 2, $po3 = 3, :$no1 = 4, @rem) {} is_deeply [$info->named_optional], [qw($no1)]; is scalar $info->named_optional, 1; is $info->slurpy, '@rem'; + is $info->args_min, 1; + is $info->args_max, Inf; } { @@ -74,6 +82,8 @@ method baz($class: $po1 = 1, $po2 = 2, $po3 = 3, :$no1 = 4, @rem) {} is_deeply [$info->named_optional], []; is scalar $info->named_optional, 0; is $info->slurpy, undef; + is $info->args_min, 1; + is $info->args_max, 1; } { @@ -90,6 +100,8 @@ method baz($class: $po1 = 1, $po2 = 2, $po3 = 3, :$no1 = 4, @rem) {} is_deeply [$info->named_optional], []; is scalar $info->named_optional, 0; is $info->slurpy, '@_'; + is $info->args_min, 0; + is $info->args_max, Inf; } { @@ -105,6 +117,8 @@ method baz($class: $po1 = 1, $po2 = 2, $po3 = 3, :$no1 = 4, @rem) {} is_deeply [$info->named_optional], []; is scalar $info->named_optional, 0; is $info->slurpy, '@_'; + is $info->args_min, 1; + is $info->args_max, Inf; } { @@ -126,6 +140,8 @@ method baz($class: $po1 = 1, $po2 = 2, $po3 = 3, :$no1 = 4, @rem) {} is_deeply [$info->named_optional], []; is scalar $info->named_optional, 0; is $info->slurpy, undef; + is $info->args_min, 6; + is $info->args_max, Inf; is $f->(), $i; } }