File Coverage

blib/lib/List/Range/Set.pm
Criterion Covered Total %
statement 25 25 100.0
branch 8 8 100.0
condition n/a
subroutine 6 6 100.0
pod 1 1 100.0
total 40 40 100.0


line stmt bran cond sub pod time code
1             package List::Range::Set;
2 4     4   1913 use strict;
  4         5  
  4         109  
3 4     4   14 use warnings;
  4         4  
  4         100  
4 4     4   2254 use utf8;
  4         65  
  4         21  
5              
6 4     4   1719 use parent qw/List::Range/;
  4         1020  
  4         17  
7              
8 4     4   237 use Class::Accessor::Lite ro => [qw/ranges/];
  4         5  
  4         25  
9              
10             sub new {
11 3     3 1 28 my ($class, $name, $ranges) = @_;
12 3         5 my ($lower, $upper);
13 3         11 for my $range (@$ranges) {
14 18 100       124 $lower = $range->lower unless defined $lower;
15 18 100       48 $lower = $range->lower if $range->lower < $lower;
16 18 100       117 $upper = $range->upper unless defined $upper;
17 18 100       39 $upper = $range->upper if $range->upper > $upper;
18             }
19 3         40 my $self = $class->SUPER::new(name => $name, lower => $lower, upper => $upper);
20 3         48 $self->{ranges} = $ranges;
21 3         9 return $self;
22             }
23              
24             1;
25             __END__