The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

use warnings FATAL => qw(all);
use ExtUtils::testlib;
use Test::More tests => 18 ;
use Data::Dumper ;

use Array::IntSpan;

my $trace = shift || 0 ;

my @expect= ([1,3,'ab'],[5, 7, 'cd'], [13, 26, 'ef']) ;
my $r = Array::IntSpan->new(@expect) ;

diag(Dumper $r) if $trace ;

ok ( defined($r) , 'Array::IntSpan new() works') ;
is_deeply( $r , \@expect, 'new content ok') ;

foreach my $t (
               [[32,34,'oops'],[]],
               [[4,4,'oops'],[]],
               [[24,26,'oops'],[[24,26,'ef']]],
               [[24,29,'oops'],[[24,26,'ef']]],
               [[10,16,'oops'],[[13,16,'ef']]],
               [[20,24,'oops'],[[20,24,'ef']]],
               [[0,9,'oops'],[[1,3,'ab'],[5,7,'cd']]],
               [[0,6,'oops'],[[1,3,'ab'],[5,6,'cd']]],
              )
  {
    my @clobbered = $r->clobbered_items(@{$t->[0]}) ;
    is(@$r, 3, 'check nb of items in range') || diag(Dumper $r);
    is_deeply(\@clobbered, $t->[1], "clobbered_items @{$t->[0]}") || 
      diag(Dumper \@clobbered) ;
  }