]> git.vpit.fr Git - perl/modules/Variable-Magic.git/blobdiff - t/30-scalar.t
Importing Variable-Magic-0.13.tar.gz
[perl/modules/Variable-Magic.git] / t / 30-scalar.t
index 3733ab72ba7e7db7d5d8093904ff3f3e46cc607c..eb1a412d58985f299428e8a8c96befd8baf64c4d 100644 (file)
@@ -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');