AlignDB-IntSpanXS
view release on metacpan or search on metacpan
t/09.spans_op.t view on Meta::CPAN
);
my $count = 1;
for my $t (@cover_tests) {
my $original = AlignDB::IntSpanXS->new( $t->[0] );
my $expected = $t->[1];
my $result = $original->cover->runlist;
printf "#%-12s %-12s -> %-12s\n", "cover", $original, $result;
my $test_name = "cover|$count";
is( $result, $expected, $test_name );
$count++;
}
print "\n";
}
# holes
{
my @holes_tests = (
[ '-', '-' ],
[ '1', '-' ],
[ '5', '-' ],
[ '1,3,5', '2,4' ],
[ '1,3-5', '2' ],
[ '1-3,5,8-11', '4,6-7' ],
);
my $count = 1;
for my $t (@holes_tests) {
my $original = AlignDB::IntSpanXS->new( $t->[0] );
my $expected = $t->[1];
my $result = $original->holes->runlist;
printf "#%-12s %-12s -> %-12s\n", "holes", $original, $result;
my $test_name = "holes|$count";
is( $result, $expected, $test_name );
$count++;
}
print "\n";
}
# inset, trim, pad
{
my @inset_tests = (
[ '-', -2, '-' ],
[ '-', -1, '-' ],
[ '-', 0, '-' ],
[ '-', 1, '-' ],
[ '-', 2, '-' ],
[ "$neg-$pos", -2, "$neg-$pos" ],
[ "$neg-$pos", 2, "$neg-$pos" ],
[ "$neg-0", -2, "$neg-2" ],
[ "$neg-0", 2, "$neg--2" ],
[ "0-$pos", -2, "-2-$pos" ],
[ "0-$pos", 2, "2-$pos" ],
[ '0,2-3,6-8,12-15,20-24,30-35', -2, '-2-26,28-37' ],
[ '0,2-3,6-8,12-15,20-24,30-35', -1, '-1-9,11-16,19-25,29-36' ],
[ '0,2-3,6-8,12-15,20-24,30-35', 0, '0,2-3,6-8,12-15,20-24,30-35' ],
[ '0,2-3,6-8,12-15,20-24,30-35', 1, '7,13-14,21-23,31-34' ],
[ '0,2-3,6-8,12-15,20-24,30-35', 2, '22,32-33' ],
);
my $count = 1;
for my $t (@inset_tests) {
my $set = AlignDB::IntSpanXS->new( $t->[0] );
my $n = $t->[1];
my $expected = AlignDB::IntSpanXS->new( $t->[2] );
my $result = $set->inset($n);
printf "#%-12s %-12s %d -> %s\n", 'inset', $set->runlist, $n,
$result->runlist;
my $test_name = "inset|$count";
ok( $result->equal($expected), $test_name );
$count++;
}
ok( AlignDB::IntSpanXS->new('1-3')->pad(1)->size == 5, 'pad' );
ok( AlignDB::IntSpanXS->new('1-3')->trim(1)->size == 1, 'trim' );
print "\n";
}
# excise
{
my @excise_tests = (
[ "1-5", 1, "1-5" ],
[ "1-5,7", 1, "1-5,7" ],
[ "1-5,7", 2, "1-5" ],
[ "1-5,7-8", 1, "1-5,7-8" ],
[ "1-5,7-8", 3, "1-5" ],
[ "1-5,7-8", 6, "-" ],
[ "1-5,7,9-10", 0, "1-5,7,9-10" ],
);
my $count = 1;
for my $t (@excise_tests) {
my $set = AlignDB::IntSpanXS->new( $t->[0] );
my $n = $t->[1];
my $expected = AlignDB::IntSpanXS->new( $t->[2] );
my $result = $set->excise($n);
printf "#%-12s %-12s %d -> %s\n", 'excise', $set->runlist, $n,
$result->runlist;
my $test_name = "excise|$count";
ok( $result->equal($expected), $test_name );
$count++;
}
}
# fill
{
my @fill_tests = (
[ "1-5", 1, "1-5" ],
[ "1-5,7", 1, "1-7" ],
[ "1-5,7", 2, "1-7" ],
[ "1-5,7-8", 1, "1-8" ],
[ "1-5,9-10", 2, "1-5,9-10" ],
[ "1-5,9-10", 3, "1-10" ],
[ "1-5,9-10,12-13,15", 2, "1-5,9-15" ],
[ "1-5,9-10,12-13,15", 3, "1-15" ],
);
( run in 2.609 seconds using v1.01-cache-2.11-cpan-f56aa216473 )