Condition Coverage

lib/Changes/Version.pm
Criterion Covered Total %
condition 124 291 42.6


and 2 conditions

line l !l condition
674 2424 250 not exists $self->{'_reset'} && defined $self->{'_reset'} && length $self->{'_reset'} and scalar @_

and 3 conditions

line !l l&&!r l&&r condition
143 139 0 0 @_ == 1 and ref $_[0] ne "HASH"
0 0 139 @_ > 1 and ref $_[0] ne "HASH"
0 139 0 @_ > 1 and ref $_[0] ne "HASH" and @_ % 2 || ref $_[1] eq 'HASH'
147 0 0 42 defined $vstr and length "$vstr"
150 0 40 2 exists $opts->{'debug'} and defined $opts->{'debug'}
40 0 2 exists $opts->{'debug'} and defined $opts->{'debug'} and length "$opts->{'debug'}"
168 192 0 117 exists $self->{'_reset'} and defined $self->{'_reset'}
0 0 117 exists $self->{'_reset'} and defined $self->{'_reset'} and length $self->{'_reset'}
172 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'}"
185 54 58 5 defined $type and $type eq "dotted"
58 0 54 not defined $type and $Changes::Version::DEFAULT_TYPE eq "dotted"
195 57 0 1 defined $fmt and length $fmt
201 0 0 57 defined $minor and index($minor, '_') != -1 || length $minor == 3 && substr($minor, 0, 1) eq '0' || length(($patch // '') || $self->padded)
210 55 0 2 not $self->padded and index($str, "_") == -1
215 51 1 3 $self->pretty and index($str, "_") == -1
52 0 3 $self->pretty and index($str, "_") == -1 and not length([split(/\./, $str, 0)]->[1]) % 3
273 0 0 1 defined $minor and length $minor
0 0 0 defined $patch and length $patch
275 0 0 1 defined $patch and length $patch
359 0 0 0 ref $fmt and overload::Method($fmt, "\"\"")
470 35 0 22 defined $alpha and length "$alpha"
506 0 0 96 defined $str and length "$str"
507 0 96 0 $] >= "5.008001" and ref \$str eq "VSTRING"
526 83 0 13 defined $re->{'dotted'} and length $re->{'dotted'}
0 0 83 defined $re->{'decimal'} and length $re->{'decimal'}
539 90 0 6 defined $re->{'has_v'} and length $re->{'has_v'}
541 16 0 80 defined $re->{'minor'} and length $re->{'minor'}
542 94 0 2 defined $re->{'alpha'} and length $re->{'alpha'}
564 0 0 1 defined $re2->{'dotted'} and length $re2->{'dotted'}
584 11 0 1 defined $def->{'alpha'} and length $def->{'alpha'}
606 4 0 79 defined $def->{'minor'} and length $def->{'minor'}
608 83 0 0 defined $def->{'alpha'} and length $def->{'alpha'} < 3
83 0 0 defined $def->{'alpha'} and length $def->{'alpha'} < 3 and not $self->compat
674 0 0 2424 exists $self->{'_reset'} && defined $self->{'_reset'} && length $self->{'_reset'}
704 7 0 0 __PACKAGE__->_is_object($this) && $this->isa('Changes::Version')
733 0 0 2 "version"->parse($1) <= $vers and $vers <= "version"->parse($3)
781 0 0 0 defined $frag && length $frag
816 0 0 0 $frag_is_int and $frag == 0
820 0 0 0 $type eq "decimal" and $level > 2
888 0 0 84 defined $frag && length $frag
899 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
0 0 0 $type eq "dotted" and $frag_is_int
928 0 0 0 defined $extra->[$i] && length $extra->[$i]
0 0 0 $i < $offset and not defined $extra->[$i] && length $extra->[$i]
1005 96 0 0 $frag_is_int and exists $map->{$frag}
1090 0 0 4 defined $frag && length "$frag"
1098 4 0 0 defined $unit and not $unit =~ /^\d+$/
1111 4 0 0 $frag_is_int and exists $map->{$frag}
1118 4 0 0 $frag_is_int and $frag - 4 > $extra->size
4 0 0 defined $unit and $unit == 1
1164 0 0 189 defined $def->{'major'} and length $def->{'major'}
1167 0 0 94 defined $def->{'minor'} and length "$def->{'minor'}"
1168 0 0 94 defined $def->{'patch'} and length "$def->{'patch'}"
1174 0 0 95 defined $def->{'minor'} && length "$def->{'minor'}"
95 0 0 not defined $def->{'minor'} && length "$def->{'minor'}" and defined $def->{'alpha'}
95 0 0 not defined $def->{'minor'} && length "$def->{'minor'}" and defined $def->{'alpha'} and length "$def->{'alpha'}"
1190 95 0 94 defined $def->{'alpha'} and length $def->{'alpha'}
1198 0 0 80 defined $self and ref $self eq "Changes::Version"
1202 0 0 80 eval {
1216 0 0 87 exists $self->{'_version'} && defined $self->{'_version'}

or 2 conditions

line l !l condition
265 1 0 shift @_ || (return $self->error('No pattern was provided to format this version.'))
270 0 1 shift @_ || ''
301 0 0 $self->$_ // 0
310 0 0 $self->alpha // ""
314 1 0 $self->alpha // ""
330 0 0 $self->minor // ""
334 0 0 $self->minor // ""
346 0 0 $self->patch // ""
348 1 0 $self->major // ""
421 59 1 $opts->{'raw'} //= 0
455 57 1 $opts->{'raw'} //= 0
479 1 0 $alpha // ""
840 0 0 $self->can($num2frag->{$j}) || die('Cannot find reference for method ', $num2frag->{$j})
848 0 0 $up_val // 0
984 96 0 $self->default_frag // "minor"
1008 96 0 $self->can($map->{$frag} // $frag) || die('Cannot find code reference for method ', $frag_is_int ? $map->{$frag} : $frag)
1086 4 0 shift @_ || (return $self->error('No op was provided.'))
1114 4 0 $self->can($map->{$frag} // $frag) || die('Cannot find code reference for method ', $frag_is_int ? $map->{$frag} : $frag)
1165 95 0 $type // ""
95 0 $type // ""

or 3 conditions

line l !l&&r !l&&!r condition
143 42 0 97 @_ % 2 || ref $_[1] eq 'HASH'
0 0 139 @_ == 1 and ref $_[0] ne "HASH" or @_ > 1 and ref $_[0] ne "HASH" and @_ % 2 || ref $_[1] eq 'HASH'
185 5 54 58 defined $type and $type eq "dotted" or not defined $type and $Changes::Version::DEFAULT_TYPE eq "dotted"
201 0 57 0 index($minor, '_') != -1 || length $minor == 3 && substr($minor, 0, 1) eq '0' || length(($patch // '') || $self->padded)
359 1 0 0 not ref $fmt or ref $fmt and overload::Method($fmt, "\"\"")
899 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
928 0 0 0 $i < $offset and not defined $extra->[$i] && length $extra->[$i] or $i > $offset
986 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'}
1005 0 96 0 $frag_is_int and exists $map->{$frag} or not $frag_is_int
1026 8 8 80 $op eq "++" or $op eq "--"
1052 8 8 64 $op eq "++" or $op eq "--"
1111 0 4 0 $frag_is_int and exists $map->{$frag} or not $frag_is_int
1165 94 0 95 $self->qv or ($type // "") eq "dotted"
1184 564 0 3 length $def->{$_} or $ok