You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
167 lines
6.8 KiB
167 lines
6.8 KiB
#!/usr/bin/perl
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
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
|
|
));
|
|
|
|
is(contains(), 0);
|
|
is(contains(undef, [], 0), 0);
|
|
is(contains('foo', [ qw(aa bb cc) ], 0), 0);
|
|
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) ]);
|
|
is_deeply(mergearrays([ ], [ qw(aa bb) ]), [ qw(aa bb) ]);
|
|
is_deeply(mergearrays([ qw(aa bb) ], [ qw(cc dd) ]), [ qw(aa bb cc dd) ]);
|
|
|
|
is_deeply(reversearray(), []);
|
|
is_deeply(reversearray([]), []);
|
|
is_deeply(reversearray([ qw(aa bb cc) ], []), [ qw(cc bb aa) ]);
|
|
|
|
is_deeply(removeduplicates(), []);
|
|
is_deeply(removeduplicates([], 0), []);
|
|
|
|
is_deeply(removeduplicates([ qw(aa bb cc) ], 0), [ qw(aa bb cc) ]);
|
|
is_deeply(removeduplicates([ qw(aa bb aa cc aa) ], 0), [ qw(aa bb cc) ]);
|
|
is_deeply(removeduplicates([ qw(aa aa bb bb cc cc) ], 0), [ qw(aa bb cc) ]);
|
|
is_deeply(removeduplicates([ qw(aa bb aa cc bb cc) ], 0), [ qw(aa bb cc) ]);
|
|
|
|
is_deeply(removeduplicates([ qw(Aa BB cC) ], 1), [ qw(aa bb cc) ]);
|
|
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);
|
|
is(itemcount('AA', [ qw(aa bb cc aa zz aa aa) ]), 0);
|
|
is(itemcount('aa', [ qw(aa bb cc aa zz aa aa) ]), 4);
|
|
|
|
is(itemcount('foo', [ qw(aa bb cc aa zz aa aa) ], 1), 0);
|
|
is(itemcount('AA', [ qw(aA bb cc Aa zz AA aa) ], 1), 4);
|
|
is(itemcount('aa', [ qw(aa bb cc aa zz aa aa) ], 1), 4);
|