Condition Coverage

lib/Changes/Version.pm
Criterion Covered Total %
condition 130 400 32.5


and 2 conditions

line l !l condition
254 0 0 not defined $Nice::Try::WANTARRAY and scalar @Nice::Try::LAST_VAL
257 0 0 not defined $Nice::Try::WANTARRAY and scalar @Nice::Try::LAST_VAL
288 0 0 not defined $Nice::Try::WANTARRAY and scalar @Nice::Try::LAST_VAL
291 0 0 not defined $Nice::Try::WANTARRAY and scalar @Nice::Try::LAST_VAL
394 2187 242 not exists $self->{'_reset'} && defined $self->{'_reset'} && length $self->{'_reset'} and scalar @_
409 73 0 not defined $Nice::Try::WANTARRAY and scalar @Nice::Try::LAST_VAL
412 0 0 not defined $Nice::Try::WANTARRAY and scalar @Nice::Try::LAST_VAL
772 0 0 not defined $Nice::Try::WANTARRAY and scalar @Nice::Try::LAST_VAL
775 0 0 not defined $Nice::Try::WANTARRAY and scalar @Nice::Try::LAST_VAL

and 3 conditions

line !l l&&!r l&&r condition
114 132 0 0 @_ == 1 and ref $_[0] ne "HASH"
0 0 132 @_ > 1 and ref $_[0] ne "HASH"
0 132 0 @_ > 1 and ref $_[0] ne "HASH" and @_ % 2 || ref $_[1] eq 'HASH'
118 0 0 42 defined $vstr and length "$vstr"
121 0 40 2 exists $opts->{'debug'} and defined $opts->{'debug'}
40 0 2 exists $opts->{'debug'} and defined $opts->{'debug'} and length "$opts->{'debug'}"
139 192 0 117 exists $self->{'_reset'} and defined $self->{'_reset'}
0 0 117 exists $self->{'_reset'} and defined $self->{'_reset'} and length $self->{'_reset'}
143 124 0 68 exists $self->{'_cache_value'} and defined $self->{'_cache_value'}
124 0 68 exists $self->{'_cache_value'} and defined $self->{'_cache_value'} and length $self->{'_cache_value'}
0 0 124 defined $self->{'original'} and length "$self->{'original'}"
156 54 58 5 defined $type and $type eq "dotted"
58 0 54 not defined $type and $Changes::Version::DEFAULT_TYPE eq "dotted"
164 56 0 2 not $self->padded and index($str, "_") == -1
169 52 1 3 $self->pretty and index($str, "_") == -1
53 0 3 $self->pretty and index($str, "_") == -1 and not length([split(/\./, $str, 0)]->[1]) % 3
235 60 0 0 $INC{'threads.pm'} and not exists $INC{'forks.pm'}
254 60 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
257 0 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
0 0 60 defined $Nice::Try::WANTARRAY || defined $Nice::Try::BREAK && $Nice::Try::BREAK eq 'return' and !&Scalar::Util::blessed($Nice::Try::RETVAL[0]) || &Scalar::Util::blessed($Nice::Try::RETVAL[0]) && !$Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
60 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__NEXT__"
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__LAST__"
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__REDO__"
0 0 0 defined $Nice::Try::BREAK and $Nice::Try::BREAK eq "return"
0 0 0 scalar @Nice::Try::VOID and !&Scalar::Util::blessed($Nice::Try::VOID[0]) || &Scalar::Util::blessed($Nice::Try::VOID[0]) && !$Nice::Try::VOID[0]->isa('Nice::Try::SENTINEL')
266 59 0 0 $INC{'threads.pm'} and not exists $INC{'forks.pm'}
277 35 0 23 defined $alpha and length "$alpha"
288 59 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
291 0 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
0 0 59 defined $Nice::Try::WANTARRAY || defined $Nice::Try::BREAK && $Nice::Try::BREAK eq 'return' and !&Scalar::Util::blessed($Nice::Try::RETVAL[0]) || &Scalar::Util::blessed($Nice::Try::RETVAL[0]) && !$Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
59 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__NEXT__"
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__LAST__"
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__REDO__"
0 0 0 defined $Nice::Try::BREAK and $Nice::Try::BREAK eq "return"
0 0 0 scalar @Nice::Try::VOID and !&Scalar::Util::blessed($Nice::Try::VOID[0]) || &Scalar::Util::blessed($Nice::Try::VOID[0]) && !$Nice::Try::VOID[0]->isa('Nice::Try::SENTINEL')
302 0 0 89 defined $str and length "$str"
307 79 0 10 defined $re->{'dotted'} and length $re->{'dotted'}
0 0 79 defined $re->{'decimal'} and length $re->{'decimal'}
320 83 0 6 defined $re->{'has_v'} and length $re->{'has_v'}
322 87 0 2 defined $re->{'alpha'} and length $re->{'alpha'}
343 78 0 1 defined $def->{'alpha'} and length $def->{'alpha'} < 3
78 0 1 defined $def->{'alpha'} and length $def->{'alpha'} < 3 and not $self->compat
357 0 0 79 defined $re2->{'dotted'} and length $re2->{'dotted'}
394 0 0 2187 exists $self->{'_reset'} && defined $self->{'_reset'} && length $self->{'_reset'}
404 73 0 0 $INC{'threads.pm'} and not exists $INC{'forks.pm'}
409 73 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
412 0 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
0 73 0 defined $Nice::Try::WANTARRAY || defined $Nice::Try::BREAK && $Nice::Try::BREAK eq 'return' and !&Scalar::Util::blessed($Nice::Try::RETVAL[0]) || &Scalar::Util::blessed($Nice::Try::RETVAL[0]) && !$Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
0 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__NEXT__"
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__LAST__"
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__REDO__"
0 0 0 defined $Nice::Try::BREAK and $Nice::Try::BREAK eq "return"
0 73 0 scalar @Nice::Try::VOID and !&Scalar::Util::blessed($Nice::Try::VOID[0]) || &Scalar::Util::blessed($Nice::Try::VOID[0]) && !$Nice::Try::VOID[0]->isa('Nice::Try::SENTINEL')
452 0 0 84 defined $frag && length $frag
462 63 0 0 $frag_is_int and $frag == 1
42 0 0 $frag_is_int and $frag == 2
21 0 0 $frag_is_int and $frag == 3
489 0 0 0 defined $extra->[$i] && length $extra->[$i]
0 0 0 $i < $offset and not defined $extra->[$i] && length $extra->[$i]
563 96 0 0 $frag_is_int and exists $map->{$frag}
640 0 0 4 defined $frag && length "$frag"
648 4 0 0 defined $unit and not $unit =~ /^\d+$/
661 4 0 0 $frag_is_int and exists $map->{$frag}
668 4 0 0 $frag_is_int and $frag - 4 > $extra->size
4 0 0 defined $unit and $unit == 1
713 0 0 190 defined $def->{'major'} and length $def->{'major'}
716 0 0 94 defined $def->{'minor'} and length "$def->{'minor'}"
717 0 0 94 defined $def->{'patch'} and length "$def->{'patch'}"
723 0 0 96 defined $def->{'minor'} && length "$def->{'minor'}"
96 0 0 not defined $def->{'minor'} && length "$def->{'minor'}" and defined $def->{'alpha'}
96 0 0 not defined $def->{'minor'} && length "$def->{'minor'}" and defined $def->{'alpha'} and length "$def->{'alpha'}"
734 96 0 94 defined $def->{'alpha'} and length $def->{'alpha'}
744 0 0 80 defined $self and "Module::Generic"->_is_a($self, "Changes::Version")
0 0 80 defined $self and "Module::Generic"->_is_a($self, "Changes::Version") and eval {
0 0 80 defined $self and "Module::Generic"->_is_a($self, "Changes::Version") and eval {
760 0 0 80 exists $self->{'_version'} && defined $self->{'_version'}
768 0 0 0 $INC{'threads.pm'} and not exists $INC{'forks.pm'}
772 0 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
775 0 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
0 0 0 defined $Nice::Try::WANTARRAY || defined $Nice::Try::BREAK && $Nice::Try::BREAK eq 'return' and !&Scalar::Util::blessed($Nice::Try::RETVAL[0]) || &Scalar::Util::blessed($Nice::Try::RETVAL[0]) && !$Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
0 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__NEXT__"
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__LAST__"
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__REDO__"
0 0 0 defined $Nice::Try::BREAK and $Nice::Try::BREAK eq "return"
0 0 0 scalar @Nice::Try::VOID and !&Scalar::Util::blessed($Nice::Try::VOID[0]) || &Scalar::Util::blessed($Nice::Try::VOID[0]) && !$Nice::Try::VOID[0]->isa('Nice::Try::SENTINEL')

or 2 conditions

line l !l condition
233 59 1 $opts->{'raw'} //= 0
264 58 1 $opts->{'raw'} //= 0
542 96 0 $self->default_frag // "minor"
566 96 0 $self->can($map->{$frag} // $frag) || die('Cannot find code reference for method ', $frag_is_int ? $map->{$frag} : $frag)
636 4 0 shift @_ || (return $self->error('No op was provided.'))
664 4 0 $self->can($map->{$frag} // $frag) || die('Cannot find code reference for method ', $frag_is_int ? $map->{$frag} : $frag)
714 96 0 $type // ""
96 0 $type // ""

or 3 conditions

line l !l&&r !l&&!r condition
114 42 0 90 @_ % 2 || ref $_[1] eq 'HASH'
0 0 132 @_ == 1 and ref $_[0] ne "HASH" or @_ > 1 and ref $_[0] ne "HASH" and @_ % 2 || ref $_[1] eq 'HASH'
156 5 54 58 defined $type and $type eq "dotted" or not defined $type and $Changes::Version::DEFAULT_TYPE eq "dotted"
257 60 0 0 defined $Nice::Try::WANTARRAY || defined $Nice::Try::BREAK && $Nice::Try::BREAK eq 'return'
59 1 0 !&Scalar::Util::blessed($Nice::Try::RETVAL[0]) || &Scalar::Util::blessed($Nice::Try::RETVAL[0]) && !$Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
0 60 0 not defined $Nice::Try::BREAK or $Nice::Try::BREAK eq "return"
0 0 0 !&Scalar::Util::blessed($Nice::Try::VOID[0]) || &Scalar::Util::blessed($Nice::Try::VOID[0]) && !$Nice::Try::VOID[0]->isa('Nice::Try::SENTINEL')
291 59 0 0 defined $Nice::Try::WANTARRAY || defined $Nice::Try::BREAK && $Nice::Try::BREAK eq 'return'
58 1 0 !&Scalar::Util::blessed($Nice::Try::RETVAL[0]) || &Scalar::Util::blessed($Nice::Try::RETVAL[0]) && !$Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
0 59 0 not defined $Nice::Try::BREAK or $Nice::Try::BREAK eq "return"
0 0 0 !&Scalar::Util::blessed($Nice::Try::VOID[0]) || &Scalar::Util::blessed($Nice::Try::VOID[0]) && !$Nice::Try::VOID[0]->isa('Nice::Try::SENTINEL')
412 73 0 0 defined $Nice::Try::WANTARRAY || defined $Nice::Try::BREAK && $Nice::Try::BREAK eq 'return'
0 0 73 !&Scalar::Util::blessed($Nice::Try::RETVAL[0]) || &Scalar::Util::blessed($Nice::Try::RETVAL[0]) && !$Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
0 0 0 not defined $Nice::Try::BREAK or $Nice::Try::BREAK eq "return"
0 0 73 !&Scalar::Util::blessed($Nice::Try::VOID[0]) || &Scalar::Util::blessed($Nice::Try::VOID[0]) && !$Nice::Try::VOID[0]->isa('Nice::Try::SENTINEL')
462 21 0 63 $frag eq "major" or $frag_is_int and $frag == 1
21 0 42 $frag eq "minor" or $frag_is_int and $frag == 2
21 0 21 $frag eq "patch" or $frag_is_int and $frag == 3
489 0 0 0 $i < $offset and not defined $extra->[$i] && length $extra->[$i] or $i > $offset
544 0 0 96 not defined $opts or ref $opts ne "HASH"
0 0 96 not defined $opts or ref $opts ne "HASH" or not exists $opts->{'op'}
0 0 96 not defined $opts or ref $opts ne "HASH" or not exists $opts->{'op'} or not defined $opts->{'op'}
0 0 96 not defined $opts or ref $opts ne "HASH" or not exists $opts->{'op'} or not defined $opts->{'op'} or not length $opts->{'op'}
563 0 96 0 $frag_is_int and exists $map->{$frag} or not $frag_is_int
584 8 8 80 $opts->{'op'} eq "++" or $opts->{'op'} eq "--"
610 8 8 64 $op eq "++" or $op eq "--"
661 0 4 0 $frag_is_int and exists $map->{$frag} or not $frag_is_int
714 94 0 96 $self->qv or ($type // "") eq "dotted"
728 567 0 3 length $def->{$_} or $ok
775 0 0 0 defined $Nice::Try::WANTARRAY || defined $Nice::Try::BREAK && $Nice::Try::BREAK eq 'return'
0 0 0 !&Scalar::Util::blessed($Nice::Try::RETVAL[0]) || &Scalar::Util::blessed($Nice::Try::RETVAL[0]) && !$Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
0 0 0 not defined $Nice::Try::BREAK or $Nice::Try::BREAK eq "return"
0 0 0 !&Scalar::Util::blessed($Nice::Try::VOID[0]) || &Scalar::Util::blessed($Nice::Try::VOID[0]) && !$Nice::Try::VOID[0]->isa('Nice::Try::SENTINEL')