X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;ds=sidebyside;f=t%2F32-hash.t;h=863905369642f14b014b353ff40e8326fec367e9;hb=a86e3e47a167afadf7de1231d6401a1139330ad0;hp=572f5e668e42fe18033cd0765ba7e4ef652bc152;hpb=56d08a38a664736a762edf46817a346482c4004f;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/t/32-hash.t b/t/32-hash.t index 572f5e6..8639053 100644 --- a/t/32-hash.t +++ b/t/32-hash.t @@ -11,8 +11,9 @@ my @c = (0) x 12; my @x = (0) x 12; sub check { - for (0 .. 11) { return 0 unless $c[$_] == $x[$_]; } - return 1; + is join(':', map { (defined) ? $_ : 'u' } @c[0 .. 11]), + join(':', map { (defined) ? $_ : 'u' } @x[0 .. 11]), + $_[0]; } my $wiz = wizard get => sub { ++$c[0] }, @@ -27,77 +28,77 @@ my $wiz = wizard get => sub { ++$c[0] }, store => sub { ++$c[9] }, 'exists' => sub { ++$c[10] }, 'delete' => sub { ++$c[11] }; -ok(check(), 'hash : create wizard'); +check('hash : create wizard'); my %n = map { $_ => int rand 1000 } qw/foo bar baz qux/; my %a = %n; cast %a, $wiz; -ok(check(), 'hash : cast'); +check('hash : cast'); my $b = $a{foo}; ++$x[5] if MGf_COPY; ++$x[8] if VMG_UVAR; -ok(check(), 'hash : assign element to'); +check('hash : assign element to'); my %b = %a; -ok(check(), 'hash : assign to'); +check('hash : assign to'); $b = "X%{a}Y"; -ok(check(), 'hash : interpolate'); +check('hash : interpolate'); $b = \%a; -ok(check(), 'hash : reference'); +check('hash : reference'); my @b = @a{qw/bar qux/}; $x[5] += 2 if MGf_COPY; $x[8] += 2 if VMG_UVAR; -ok(check(), 'hash : slice'); +check('hash : slice'); %a = (a => 1, d => 3); ++$x[3]; $x[5] += 2 if VMG_UVAR; $x[9] += 2 if VMG_UVAR; -ok(check(), 'hash : assign from list'); +check('hash : assign from list'); %a = map { $_ => 1 } qw/a b d/; ++$x[3]; $x[5] += 3 if VMG_UVAR; $x[9] += 3 if VMG_UVAR; -ok(check(), 'hash : assign from map'); +check('hash : assign from map'); $a{d} = 2; ++$x[5] if MGf_COPY; ++$x[9] if VMG_UVAR; -ok(check(), 'hash : assign old element'); +check('hash : assign old element'); $a{c} = 3; ++$x[5] if MGf_COPY; ++$x[9] if VMG_UVAR; -ok(check(), 'hash : assign new element'); +check('hash : assign new element'); $b = %a; -ok(check(), 'hash : buckets'); +check('hash : buckets'); @b = keys %a; -ok(check(), 'hash : keys'); +check('hash : keys'); @b = values %a; -ok(check(), 'hash : values'); +check('hash : values'); while (my ($k, $v) = each %a) { } -ok(check(), 'hash : each'); +check('hash : each'); { my %b = %n; cast %b, $wiz; } ++$x[4]; -ok(check(), 'hash : scope end'); +check('hash : scope end'); undef %a; ++$x[3]; -ok(check(), 'hash : undef'); +check('hash : undef'); dispell %a, $wiz; -ok(check(), 'hash : dispel'); +check('hash : dispel');