6 use Test::More tests => 16;
10 my $sn = Sub::Nary->new();
35 sub ret1l { $x ? 1 : @_ }
43 return @h{qw/a b c/}, $y
56 [ \&ret12, { 1 => 0.5, 2 => 0.5 } ],
57 [ \&ret12b, { 1 => 0.5, 2 => 0.5 } ],
58 [ \&ret12c, { 1 => 0.5, 2 => 0.5 } ],
59 [ sub { 1, ret12 }, { 2 => 0.5, 3 => 0.5 } ],
60 [ sub { 1, do { ret12, 3 } }, { 3 => 0.5, 4 => 0.5 } ],
61 [ sub { @_[ret12()] }, { 1 => 0.5, 2 => 0.5 } ],
63 [ sub { ret12, ret12 }, { 2 => 0.25, 3 => 0.5, 4 => 0.25 } ],
64 [ sub { ret12, 0, ret12 }, { 3 => 0.25, 4 => 0.5, 5 => 0.25 } ],
65 [ sub { ret12, @a }, { list => 1 } ],
66 [ sub { %h, ret12 }, { list => 1 } ],
68 [ sub { if ($y) { ret12 } else { ret12 } }, { 1 => 0.5, 2 => 0.5 } ],
70 [ \&ret1l, { 1 => 0.5, list => 0.5 } ],
71 [ sub { $_[0], ret1l }, { 2 => 0.5, list => 0.5 } ],
72 [ sub { ret1l, ret1l, ret1l }, { 3 => 0.125, list => 0.875 } ],
74 [ \&ret1234, { 2 => 0.5, 3 => 0.25, 4 => 0.125, 1 => 0.125 } ],
76 [ \&retinif, { 2 => 1 } ],
81 my $r = $sn->nary($_->[0]);
82 my $exp = ref $_->[1] ? $_->[1] : { $_->[1] => 1 };
83 is_deeply($r, $exp, 'branch test ' . $i);