diff options
author | Gianni Ceccarelli <dakkar@thenautilus.net> | 2011-11-10 15:10:26 +0000 |
---|---|---|
committer | Gianni Ceccarelli <dakkar@thenautilus.net> | 2011-11-10 15:10:26 +0000 |
commit | dc07be4ac45756a0e664ee29e888f86b7609784a (patch) | |
tree | dca7e4467f73625604886e8910a609ccc978b0ce /t/overlapping-ranges.t | |
parent | 'clear' almost completely implemneted (diff) | |
download | data-multivalued-dc07be4ac45756a0e664ee29e888f86b7609784a.tar.gz data-multivalued-dc07be4ac45756a0e664ee29e888f86b7609784a.tar.bz2 data-multivalued-dc07be4ac45756a0e664ee29e888f86b7609784a.zip |
move up a level
Diffstat (limited to 't/overlapping-ranges.t')
-rw-r--r-- | t/overlapping-ranges.t | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/t/overlapping-ranges.t b/t/overlapping-ranges.t new file mode 100644 index 0000000..01bb98d --- /dev/null +++ b/t/overlapping-ranges.t @@ -0,0 +1,64 @@ +#!perl +use strict; +use warnings; +use Test::Most 'die'; +use Data::Printer; +use Data::MultiValued::Ranges; +use Data::MultiValued::TagsAndRanges; + +sub test_it { + my ($obj) = @_; + $obj->set({ + from=>10, + to=>20, + value=>1, + }); + $obj->set({ + from=>15, + to => 30, + value => 2, + }); + + my %points = ( + 10,1, + 12,1, + 13,1, + 14,1, + 15,2, + 17,2, + 19,2, + 20,2, + 25,2, + 29,2, + ); + while (my ($at,$v) = each %points) { + cmp_ok($obj->get({at=>$at}), + '==', + $v, + "value at $at"); + } + + dies_ok { + $obj->get({at=>30}) + } 'far end'; + dies_ok { + $obj->get({at=>9}) + } 'far end'; +} + + +subtest 'ranges' => sub { + my $obj = Data::MultiValued::Ranges->new(); + ok($obj,'constructor works'); + + test_it($obj); +}; + +subtest 'tags and ranges' => sub { + my $obj = Data::MultiValued::TagsAndRanges->new(); + ok($obj,'constructor works'); + + test_it($obj); +}; + +done_testing(); |