diff --git a/t/Array.t b/t/Array.t index 7b69113..de10c92 100644 --- a/t/Array.t +++ b/t/Array.t @@ -16,19 +16,24 @@ use strict; use warnings; -use Test::More tests => 33; +use Test::More tests => 112; require_ok('NGCP::BulkProcessor::Array'); NGCP::BulkProcessor::Array->import(qw( + arrayeq + seteq + mapeq contains + setcontains + filter mergearrays reversearray removeduplicates + getroundrobinitem itemcount )); -# Container functions is(contains(), 0); is(contains(undef, [], 0), 0); is(contains('foo', [ qw(aa bb cc) ], 0), 0); @@ -36,6 +41,84 @@ is(contains('foo', [ qw(aa bb cc) ], 1), 0); is(contains('foo', [ qw(aa bb foo cc) ], 0), 1); is(contains('foo', [ qw(aa bb FOO cc) ], 1), 1); +is(setcontains(), 1); +is(setcontains(undef, [], 0), 1); +is(setcontains([ qw(foo bar) ], [ qw(aa bb cc) ], 0), 0); +is(setcontains([ qw(foo bar) ], [ qw(aa bb cc) ], 1), 0); +is(setcontains([ qw(foo bar) ], [ qw(aa bb foo cc) ], 0), 0); +is(setcontains([ qw(foo bar) ], [ qw(aa bb foo bar cc) ], 0), 1); +is(setcontains([ qw(bar foo) ], [ qw(aa bb foo bar cc) ], 0), 1); +is(setcontains([ qw(aa bb cc) ], [ qw(aa bb cc) ], 0), 1); +is(setcontains([ qw(cc bb aa) ], [ qw(aa bb cc) ], 0), 1); +is(setcontains([ qw(foO bar) ], [ qw(aa bb fOo baR cc) ], 1), 1); +is(setcontains([ qw(bAr foo) ], [ qw(aa bb foO Bar cc) ], 1), 1); +is(setcontains([ qw(aA bb Cc) ], [ qw(Aa BB cC) ], 1), 1); +is(setcontains([ qw(Cc BB Aa) ], [ qw(aa bb CC) ], 1), 1); + +is(arrayeq(), 1); +is(arrayeq(undef, undef), 1); +is(arrayeq([], []), 1); +is(arrayeq([ qw(aa bb) ], []), 0); +is(arrayeq([], [ qw(aa bb) ]), 0); +is(arrayeq([ qw(aa) ], [ qw(aa bb) ]), 0); +is(arrayeq([ qw(aa bb cc) ], [ qw(aa bbb cc) ]), 0); +is(arrayeq([ qw(bb cc aa) ], [ qw(aa bb cc) ]), 0); +is(arrayeq([ qw(aa bb cc) ], [ qw(aa bb cc) ]), 1); +is(arrayeq([ qw(aa bb cc) ], [ qw(aA bBb Cc) ], 1), 0); +is(arrayeq([ qw(Bb cc aa) ], [ qw(aa Bb cC) ], 1), 0); +is(arrayeq([ qw(aA Bb cc) ], [ qw(aa bb Cc) ], 1), 1); + +is(seteq(), 1); +is(seteq(undef, undef), 1); +is(seteq([], []), 1); +is(seteq([ qw(aa bb) ], []), 0); +is(seteq([], [ qw(aa bb) ]), 0); +is(seteq([ qw(aa) ], [ qw(aa bb) ]), 0); +is(seteq([ qw(aa bb cc) ], [ qw(aa bbb cc) ]), 0); +is(seteq([ qw(bb cc aa) ], [ qw(aa bb cc) ]), 1); +is(seteq([ qw(aa bb cc) ], [ qw(aa bb cc) ]), 1); +is(seteq([ qw(aa bb cc) ], [ qw(aA bBb Cc) ], 1), 0); +is(seteq([ qw(Bb cc aa) ], [ qw(aa Bb cC) ], 1), 1); +is(seteq([ qw(aA Bb cc) ], [ qw(aa bb Cc) ], 1), 1); + +is(mapeq(), 1); +is(mapeq(undef, undef), 1); +is(mapeq({}, {}), 1); +is(mapeq({ aa => 1, bb => 1 }, {}), 0); +is(mapeq({}, { aa => 1, bb => 1 }), 0); +is(mapeq({ aa => 1 }, { aa => 1, bb => 1 }), 0); +is(mapeq({ aa => 1, bb => 1, cc => 1 }, + { aa => 1, bbb => 1, cc => 1 }), 0); +is(mapeq({ aa => 1, bb => 1, cc => 1 }, + { aa => 2, bb => 2, cc => 2 }), 0); +is(mapeq({ aa => 1, bb => 1, cc => 1 }, + { aa => 1, bb => 1, cc => 1 }), 1); +is(mapeq({ aa => 1, bb => 1, cc => 1 }, + { aA => 1, bBb => 1, Cc => 1 }, 1), 0); +is(mapeq({ aA => 1, Bb => 1, cc => 1 }, + { aa => 1, bb => 1, Cc => 1 }, 1), 0); +is(mapeq({ aa => 'aa', bb => 'bb', cc => 'cc' }, + { aa => 'aA', bb => 'BB', cc => 'Cc' }, 1), 1); + +is_deeply(filter(), []); +is_deeply(filter(undef, undef), []); +is_deeply(filter(undef, []), []); +is_deeply(filter([], undef), []); +is_deeply(filter([], []), []); +is_deeply(filter([], [ qw(aa bb cc) ]), []); +is_deeply(filter([ qw(aa bb cc) ], undef), [ qw(aa bb cc) ]); +is_deeply(filter([ qw(aa bb cc) ], []), []); +is_deeply(filter([ qw(zz yy xx) ], [ qw(aa bb cc) ]), []); +is_deeply(filter([ qw(aa) ], [ qw(aA bb cc) ]), [ ]); +is_deeply(filter([ qw(aa) ], [ qw(aa bb cc) ]), [ qw(aa) ]); +is_deeply(filter([ qw(aa bb cc) ], [ qw(aa bb cc) ]), [ qw(aa bb cc) ]); +is_deeply(filter([ qw(aa zz bb yy cc xx) ], [ qw(aa bb cc) ]), [ qw(aa bb cc) ]); +is_deeply(filter([ qw(aa bb cc) ], [ qw(aa zz bb yy cc xx) ]), [ qw(aa bb cc) ]); +is_deeply(filter([ qw(aA) ], [ qw(aa bb cc) ], 1), [ qw(aA) ]); +is_deeply(filter([ qw(aA Bb cc) ], [ qw(Aa bB CC) ], 1), [ qw(aA Bb cc) ]); +is_deeply(filter([ qw(aA Zz bB yy CC Xx) ], [ qw(AA Bb cc) ], 1), [ qw(aA bB CC) ]); +is_deeply(filter([ qw(aA Bb CC) ], [ qw(AA zZ bB Yy cc Xx) ], 1), [ qw(aA Bb CC) ]); + is_deeply(mergearrays(), []); is_deeply(mergearrays([], []), []); is_deeply(mergearrays([ qw(aa bb) ], []), [ qw(aa bb) ]); @@ -59,6 +142,19 @@ is_deeply(removeduplicates([ qw(aA BB Aa Cc aa) ], 1), [ qw(aa bb cc) ]); is_deeply(removeduplicates([ qw(aA AA bB Bb CC cc) ], 1), [ qw(aa bb cc) ]); is_deeply(removeduplicates([ qw(AA bB Aa cc Bb CC) ], 1), [ qw(aa bb cc) ]); +is_deeply([ getroundrobinitem() ], [ (undef, undef) ]); +is_deeply([ getroundrobinitem(undef, undef) ], [ (undef, undef) ]); +is_deeply([ getroundrobinitem([], 0) ], [ (undef, undef) ]); +is_deeply([ getroundrobinitem([ qw(aa bb cc dd ee) ], -1) ], [ ('aa', 0) ]); +is_deeply([ getroundrobinitem([ qw(aa bb cc dd ee) ], 0) ], [ ('bb', 1) ]); +is_deeply([ getroundrobinitem([ qw(aa bb cc dd ee) ], 1) ], [ ('cc', 2) ]); +is_deeply([ getroundrobinitem([ qw(aa bb cc dd ee) ], 3) ], [ ('ee', 4) ]); +is_deeply([ getroundrobinitem([ qw(aa bb cc dd ee) ], 4) ], [ ('aa', 0) ]); +is_deeply([ getroundrobinitem([ qw(aa bb cc dd ee) ], 5) ], [ ('bb', 1) ]); +is_deeply([ getroundrobinitem([ qw(aa bb cc dd ee) ], 8) ], [ ('ee', 4) ]); +is_deeply([ getroundrobinitem([ qw(aa bb cc dd ee) ], 9) ], [ ('aa', 0) ]); +is_deeply([ getroundrobinitem([ qw(aa bb cc dd ee) ], 10) ], [ ('bb', 1) ]); + is(itemcount(), 0); is(itemcount(undef, []), 0); is(itemcount('foo', [ qw(aa bb cc aa zz aa aa) ]), 0);