BEGIN {
if
( $@ ) {
}
plan
tests
=> 40;
}
ok(1);
my
$range
= Bio::Range->new(
-start
=>10,
-end
=>20,
-strand
=>1);
ok(
defined
$range
);
ok(
$range
->strand, 1);
my
$range2
= Bio::Range->new(
-start
=>15,
-end
=>25,
-strand
=>1);
ok(
defined
$range2
);
ok(
$range2
->strand, 1);
my
$r
= Bio::Range->new();
ok(
$r
->strand(0), 0);
ok(
$r
->start(27), 27);
ok(
$r
->end(28), 28);
ok(!
defined
$r
->intersection(
$range2
));
$r
=
$range
->union(
$range2
);
ok(
$r
->start, 10);
ok(
$r
->end, 25);
$r
=
$range
->intersection(
$range2
);
ok(
$r
->start, 15);
ok(
$r
->end, 20);
ok(
$r
->strand, 1);
my
$range3
= Bio::Range->new(
-start
=>18,
-end
=>30);
$r
=
$range
->intersection([
$range2
,
$range3
]);
ok(
$r
->start == 18 &&
$r
->end == 20);
$r
= Bio::Range->intersection([
$range
,
$range2
,
$range3
]);
ok(
$r
->start == 18 &&
$r
->end == 20);
$r
=
$range
->union(
$range2
,
$range3
);
ok(
$r
->start == 10 &&
$r
->end == 30);
$r
= Bio::Range->union(
$range
,
$range2
,
$range3
);
ok(
$r
->start == 10 &&
$r
->end == 30);
$range3
->start(21);
ok(!
defined
$range
->intersection([
$range2
,
$range3
]));
ok !(
$range
->contains(
$range2
));
ok !(
$range2
->contains(
$range
));
ok (
$range
->overlaps(
$range2
));
ok (
$range2
->overlaps(
$range
));
$range3
= Bio::Range->new(
-start
=> 15,
-end
=> 25,
-strand
=> 1);
my
$range4
= Bio::Range->new(
-start
=> 15,
-end
=> 25,
-strand
=> -1);
my
$range5
= Bio::Range->new(
-start
=> 15,
-end
=> 25,
-strand
=> 0);
my
$range6
= Bio::Range->new(
-start
=> 20,
-end
=> 30,
-strand
=> -1);
ok
$range3
->_ignore(
$range4
);
ok
$range3
->_weak(
$range3
);
ok
$range3
->_weak(
$range5
);
ok ! (
$range3
->_weak(
$range4
));
ok
$range3
->_strong(
$range3
);
ok ! (
$range3
->_strong(
$range5
));
ok ! (
$range3
->_strong(
$range4
));
ok ! (
$range3
->overlaps(
$range4
,
'weak'
));
ok ! (
$range4
->overlaps(
$range3
,
'weak'
));
ok ! (
$range3
->overlaps(
$range4
,
'strong'
));
ok ! (
$range4
->overlaps(
$range3
,
'strong'
));
$range3
->strand(0);
ok (
$range3
->overlaps(
$range4
,
'weak'
));
ok (
$range4
->overlaps(
$range3
,
'weak'
));
ok ! (
$range3
->overlaps(
$range4
,
'strong'
));
ok ! (
$range4
->overlaps(
$range3
,
'strong'
));
$r
=
$range3
->intersection(
$range4
);
ok(
$r
->strand, 0);
$r
=
$range6
->intersection(
$range4
);
ok(
$r
->strand, -1);