]> git.vpit.fr Git - perl/modules/Sub-Nary.git/blobdiff - t/16-combine.t
Add support for die()
[perl/modules/Sub-Nary.git] / t / 16-combine.t
index 7f0b459e35cdd8511c339352763d5dd7b7fb6985..bfd9d4e86a48401a68092c739cc8e02f3de7dd2f 100644 (file)
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 41;
+use Test::More tests => 60;
 
 use Sub::Nary;
 
@@ -12,7 +12,11 @@ use Sub::Nary;
 my $h12 = { 1 => 0.5, 2 => 0.5 };
 my $h1l = { 1 => 0.5, list => 0.5 };
 my $h1e = { 1 => 0.5, exit => 0.5 };
+my $h1d = { 1 => 0.5, die  => 0.5 };
 my $h1le = { 1 => 0.25, list => 0.25, exit => 0.5 };
+my $h12e = { 1 => 0.25, 2    => 0.25, exit => 0.5 };
+my $h1ld = { 1 => 0.25, list => 0.25, die  => 0.5 };
+my $h12d = { 1 => 0.25, 2    => 0.25, die  => 0.5 };
 
 my @tests = (
  [ [ ],          undef ],
@@ -57,11 +61,44 @@ my @tests = (
  [ [ 'exit', 1 ],             'exit' ],
  [ [ { %$h1e }, 1 ],          { exit => 0.5, 2 => 0.5 } ],
  [ [ { %$h1e }, { %$h1e } ],  { exit => 0.75, 2 => 0.25 } ],
+
  [ [ { %$h1e }, { %$h1l } ],  { exit => 0.5, list => 0.25, 2 => 0.25 } ],
  [ [ { %$h1l }, { %$h1e } ],  { exit => 0.5, list => 0.25, 2 => 0.25 } ],
  [ [ { %$h1l }, { %$h1le } ], { exit => 0.5, list => 0.375, 2 => 0.125 } ],
  [ [ { %$h1e }, { %$h1le } ], { exit => 0.75, list => 0.125, 2 => 0.125 } ],
 
+ [ [ 'die' ],                 'die' ],
+ [ [ 'die', 2 ],              'die' ],
+ [ [ { %$h1d }, 2 ],          { die => 0.5, 3 => 0.5 } ],
+ [ [ { %$h1d }, 1 ],          { die => 0.5, 2 => 0.5 } ],
+ [ [ { %$h1d }, { %$h1d } ],  { die => 0.75, 2 => 0.25 } ],
+
+ [ [ { %$h1d }, { %$h1l } ],  { die => 0.5, list => 0.25, 2 => 0.25 } ],
+ [ [ { %$h1l }, { %$h1d } ],  { die => 0.5, list => 0.25, 2 => 0.25 } ],
+ [ [ { %$h1l }, { %$h1ld } ], { die => 0.5, list => 0.375, 2 => 0.125 } ],
+ [ [ { %$h1d }, { %$h1ld } ], { die => 0.75, list => 0.125, 2 => 0.125 } ],
+
+ [ [ { %$h1e }, { %$h1d } ],  { exit => 0.5,   die => 0.25, 2 => 0.25 } ],
+ [ [ { %$h1d }, { %$h1e } ],  { exit => 0.25,  die => 0.5,  2 => 0.25 } ],
+ [ [ { %$h1e }, { %$h1ld } ], { exit => 0.5,   die => 0.25,
+                                list => 0.125, 2 => 0.125 } ],
+ [ [ { %$h1d }, { %$h1le } ], { exit => 0.25,  die => 0.5,
+                                list => 0.125, 2 => 0.125 } ],
+
+ [ [ { %$h12d }, { %$h1le } ], { exit => 0.25,  die => 0.5,
+                                 list => 0.125, 2 => 0.0625, 3 => 0.0625 } ],
+ [ [ { %$h12e }, { %$h1ld } ], { exit => 0.5,    die => 0.25,
+                                 list => 0.125, 2 => 0.0625, 3 => 0.0625 } ],
+ [ [ { %$h1ld }, { %$h12e } ], { exit => 0.25,  die => 0.5,
+                                 list => 0.125, 2 => 0.0625, 3 => 0.0625 } ],
+ [ [ { %$h1le }, { %$h12d } ], { exit => 0.5,    die => 0.25,
+                                 list => 0.125, 2 => 0.0625, 3 => 0.0625 } ],
+
+ [ [ { %$h1ld }, { %$h1le } ], { exit => 0.25,   die => 0.5,
+                                 list => 0.1875, 2 => 0.0625  } ],
+ [ [ { %$h1le }, { %$h1ld } ], { exit => 0.5,    die => 0.25,
+                                 list => 0.1875, 2 => 0.0625  } ],
+
  [ [ $h1l, $h1l ],              { 2 => 0.25, list => 0.5 } ], # Side effects
 );