X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F30-scalar.t;h=eb1a412d58985f299428e8a8c96befd8baf64c4d;hb=32bb19d839bff941751b0134ce2f99adefe550e0;hp=3733ab72ba7e7db7d5d8093904ff3f3e46cc607c;hpb=77a84f75f33e3ee44e61182dec76699e23025375;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/t/30-scalar.t b/t/30-scalar.t index 3733ab7..eb1a412 100644 --- a/t/30-scalar.t +++ b/t/30-scalar.t @@ -1,15 +1,19 @@ #!perl -T +use strict; +use warnings; + use Test::More tests => 13; use Variable::Magic qw/wizard cast dispell/; -my @c = (0) x 5; -my @x = (0) x 5; +my @c = (0) x 12; +my @x = (0) x 12; sub check { - for (0 .. 4) { return 0 unless $c[$_] == $x[$_]; } - return 1; + is join(':', map { (defined) ? $_ : 'u' } @c[0 .. 11]), + join(':', map { (defined) ? $_ : 'u' } @x[0 .. 11]), + $_[0]; } my $i = -1; @@ -17,56 +21,63 @@ my $wiz = wizard get => sub { ++$c[0] }, set => sub { ++$c[1] }, len => sub { ++$c[2] }, clear => sub { ++$c[3] }, - free => sub { ++$c[4] }; -ok(check(), 'scalar : create wizard'); + free => sub { ++$c[4] }, + copy => sub { ++$c[5] }, + dup => sub { ++$c[6] }, + local => sub { ++$c[7] }, + fetch => sub { ++$c[8] }, + store => sub { ++$c[9] }, + 'exists' => sub { ++$c[10] }, + 'delete' => sub { ++$c[11] }; +check('scalar : create wizard'); my $n = int rand 1000; my $a = $n; cast $a, $wiz; -ok(check(), 'scalar : cast'); +check('scalar : cast'); my $b = $a; ++$x[0]; -ok(check(), 'scalar : assign to'); +check('scalar : assign to'); $b = "X${a}Y"; ++$x[0]; -ok(check(), 'scalar : interpolate'); +check('scalar : interpolate'); $b = \$a; -ok(check(), 'scalar : reference'); +check('scalar : reference'); $a = 123; ++$x[1]; -ok(check(), 'scalar : assign'); +check('scalar : assign'); ++$a; ++$x[0]; ++$x[1]; -ok(check(), 'scalar : increment'); +check('scalar : increment'); --$a; ++$x[0]; ++$x[1]; -ok(check(), 'scalar : decrement'); +check('scalar : decrement'); $a *= 1.5; ++$x[0]; ++$x[1]; -ok(check(), 'scalar : multiply'); +check('scalar : multiply'); $a /= 1.5; ++$x[0]; ++$x[1]; -ok(check(), 'scalar : divide'); +check('scalar : divide'); { my $b = $n; cast $b, $wiz; } ++$x[4]; -ok(check(), 'scalar : scope end'); +check('scalar : scope end'); undef $a; ++$x[1]; -ok(check(), 'scalar : undef'); +check('scalar : undef'); dispell $a, $wiz; -ok(check(), 'scalar : dispell'); +check('scalar : dispell');