X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F30-array.t;h=af31ea4d21260f7c9c3ef0f5ef4f5a3e72ce3123;hb=aae04e46de5be0dc7e9abfc02035b6bb09aea6a7;hp=feea9ebfee9b7218481784004ae4b5b7cff08cca;hpb=942e958277b7cb1bc8044adb2c193a1f31757588;p=perl%2Fmodules%2Fautovivification.git diff --git a/t/30-array.t b/t/30-array.t index feea9eb..af31ea4 100644 --- a/t/30-array.t +++ b/t/30-array.t @@ -3,9 +3,9 @@ use strict; use warnings; -use Test::More tests => 9 * 3 * 274; - use lib 't/lib'; +use Test::Leaner tests => 9 * 3 * 302; + use autovivification::TestCases; while () { @@ -116,6 +116,20 @@ $x->[$N[0]] = 1 # 1 for $x->[$N[1]]; () # '', undef, [ 1, undef ] # +delete $x->[$N[0]] = 1 # 1 for $x->[$N[0]]; () # '', undef, [ 1 ] # +store $x->[$N[0]] = 1 # 1 for $x->[$N[1]]; () # '', undef, [ 1, undef ] # +store +$x # do_nothing($x->[$N[0]]); () # '', undef, [ ] +$x # do_nothing($x->[$N[0]]); () # '', undef, [ ] # +$x # do_nothing($x->[$N[0]]); () # '', undef, [ ] # +fetch +$x # do_nothing($x->[$N[0]]); () # '', undef, [ ] # +exists +$x # do_nothing($x->[$N[0]]); () # '', undef, [ ] # +delete +$x # do_nothing($x->[$N[0]]); () # qr/^Can't vivify reference/, undef, undef # +store + +$x # set_arg($x->[$N[0]]); () # '', undef, [ 1 ] +$x # set_arg($x->[$N[0]]); () # '', undef, [ 1 ] # +$x # set_arg($x->[$N[0]]); () # '', undef, [ 1 ] # +fetch +$x # set_arg($x->[$N[0]]); () # '', undef, [ 1 ] # +exists +$x # set_arg($x->[$N[0]]); () # '', undef, [ 1 ] # +delete +$x # set_arg($x->[$N[0]]); () # qr/^Can't vivify reference/, undef, undef # +store + --- dereferencing --- $x # no warnings 'uninitialized'; my @a = @$x; () # ($strict ? qr/^Can't use an undefined value as an ARRAY reference/ : ''), undef, undef @@ -130,6 +144,28 @@ $x->[$N[0]] = 1 # my @a = @$x; () # '', undef, [ 1 ] # +exists $x->[$N[0]] = 1 # my @a = @$x; () # '', undef, [ 1 ] # +delete $x->[$N[0]] = 1 # my @a = @$x; () # '', undef, [ 1 ] # +store +--- slice --- + +$x # my @a = @$x[$N[0], $N[1]]; \@a # '', [ undef, undef ], [ ] +$x # my @a = @$x[$N[0], $N[1]]; \@a # '', [ undef, undef ], undef # +$x # my @a = @$x[$N[0], $N[1]]; \@a # '', [ undef, undef ], undef # +fetch +$x # my @a = @$x[$N[0], $N[1]]; \@a # '', [ undef, undef ], [ ] # +exists +$x # my @a = @$x[$N[0], $N[1]]; \@a # '', [ undef, undef ], [ ] # +delete +$x # my @a = @$x[$N[0], $N[1]]; \@a # '', [ undef, undef ], [ ] # +store + +$x->[$N[1]] = 0 # my @a = @$x[$N[0], $N[1]]; \@a # '', [ undef, 0 ], [ undef, 0 ] # +fetch + +$x # @$x[$N[0], $N[1]] = (1, 2); () # '', undef, [ 1, 2 ] +$x # @$x[$N[0], $N[1]] = (1, 2); () # '', undef, [ 1, 2 ] # +$x # @$x[$N[0], $N[1]] = (1, 2); () # '', undef, [ 1, 2 ] # +fetch +$x # @$x[$N[0], $N[1]] = (1, 2); () # '', undef, [ 1, 2 ] # +exists +$x # @$x[$N[0], $N[1]] = (1, 2); () # '', undef, [ 1, 2 ] # +delete +$x # @$x[$N[0], $N[1]] = (1, 2); () # qr/^Can't vivify reference/, undef, undef # +store + +$x->[$N[0]] = 0 # @$x[$N[0], $N[1]] = (1, 2); () # '', undef, [ 1, 2 ] # +store +$x->[$N[2]] = 0 # @$x[$N[0], $N[1]] = (1, 2); () # '', undef, [ 1, 2, 0 ] # +store +$x->[$N[0]] = 0, $x->[$N[1]] = 0 # @$x[$N[0], $N[1]] = (1, 2); () # '', undef, [ 1, 2 ] # +store + --- exists --- $x # exists $x->[$N[0]] # '', '', [ ]