From: Vincent Pit Date: Wed, 20 Aug 2008 13:18:33 +0000 (+0200) Subject: More combine()-specific tests X-Git-Url: http://git.vpit.fr/?a=commitdiff_plain;h=d625b2c0b187b0a423dfdcf5d96d783555bcc560;p=perl%2Fmodules%2FSub-Nary.git More combine()-specific tests --- diff --git a/t/15-misc-xs.t b/t/15-misc-xs.t index 42847e6..c9ac01d 100644 --- a/t/15-misc-xs.t +++ b/t/15-misc-xs.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 20; +use Test::More tests => 32; use Sub::Nary; @@ -47,3 +47,26 @@ is_deeply(cumulate({ 1 => 0.5, 2 => 0.5 }, 1, 0.5), { 1 => 0.5, 2 => 0.5 }, 'cumulate ref, 1, frac'); is_deeply(cumulate({ 1 => 0.5, 2 => 0.5 }, 2, 0.5), { 1 => 0.75, 2 => 0.75 }, 'cumulate ref, 1, frac'); + +*combine = *Sub::Nary::combine{CODE}; + +is_deeply(combine(undef), undef, 'combine undef'); +is_deeply(combine({}), {}, 'combine empty-ref'); +is_deeply(combine({}, {}), {}, 'combine empty-ref, empty-ref'); +is_deeply(combine(1), { 1 => 1 }, 'combine const'); +is_deeply(combine(1, 2), { 3 => 1 }, 'combine const, const'); +is_deeply(combine(1, 'list'), { 'list' => 1 }, 'combine const, list'); +is_deeply(combine(1,{'list'=>1}), { 'list' => 1 }, 'combine const, list'); +is_deeply(combine(1, { 1 => 0.5, 2 => 0.5 }), { 2 => 0.5, 3 => 0.5 }, + 'combine const, hashref'); +is_deeply(combine(1, { 1 => 0.5, 'list' => 0.5 }), { 2 => 0.5, 'list' => 0.5 }, + 'combine const, hashref with list'); +my $x = { 1 => 0.5, 2 => 0.5 }; +is_deeply(combine($x, $x), { 2 => 0.25, 3 => 0.5, 4 => 0.25 }, + 'combine hashref, hashref'); +is_deeply(combine($x, 'list', $x), { list => 1 }, + 'combine hashref, list, hashref'); +$x = { 1 => 0.5, list => 0.5 }; +is_deeply(combine($x, $x), { 2 => 0.25, list => 0.75 }, + 'combine hashref with list, hashref with list'); +