#!/usr/bin/perl
my
$column_a
=Data::Range::Compare::Stream::Iterator::Array->new();
$column_a
->create_range(3,11);
$column_a
->create_range(17,19);
my
$column_b
=Data::Range::Compare::Stream::Iterator::Array->new();
$column_b
->create_range(0,0);
$column_b
->create_range(1,3);
$column_b
->create_range(5,7);
$column_b
->create_range(6,9);
$column_b
->create_range(11,15);
$column_b
->create_range(17,33);
$column_a
->prepare_for_consolidate_asc;
$column_b
->prepare_for_consolidate_asc;
my
$column_a_consolidator
=Data::Range::Compare::Stream::Iterator::Consolidate->new(
$column_a
);
my
$column_b_consolidator
=Data::Range::Compare::Stream::Iterator::Consolidate->new(
$column_b
);
my
$compare
=new Data::Range::Compare::Stream::Iterator::Compare::Asc;
$compare
->add_consolidator(
$column_a_consolidator
);
$compare
->add_consolidator(
$column_b_consolidator
);
while
(
$compare
->has_next) {
my
$row
=
$compare
->get_next;
next
if
$row
->is_empty;
my
$common_range
=
$row
->get_common;
my
$overlap_count
=
$row
->get_overlap_count;
print
"A total of: [$overlap_count] Ranges intersected with Common range: $common_range\n"
;
my
$overlap_ids
=
$row
->get_overlap_ids;
foreach
my
$consolidator_id
(@{
$overlap_ids
}) {
if
(
$consolidator_id
==0) {
my
$result
=
$row
->get_consolidator_result_by_id(
$consolidator_id
);
print
" Column a contained the following overlaps $result\n"
;
}
elsif
(
$consolidator_id
==1) {
my
$result
=
$row
->get_consolidator_result_by_id(
$consolidator_id
);
print
" Column b contained the following overlaps $result\n"
;
}
}
print
"\n"
;
}