Branch Coverage

blib/lib/Math/PartialOrder/Base.pm
Criterion Covered Total %
branch 105 312 33.6


line true false branch
64 0 0 if (ref $proto)
69 0 0 if $self->can('initialize')
91 0 0 if ($^W and $VERBOSE)
95 0 0 if ($VERBOSE > 1) { }
124 520 23 if (@_)
126 80 512 unless $self->has_type($_)
146 0 187 if (defined $attrs and %$attrs)
163 0 179 if (not $h1->has_type($t)) { }
169 0 179 if @parents
173 0 179 if (defined $attrs)
194 0 0 defined $_[1] ? :
199 4 848 unless $h->has_type($_)
208 10 50 if $h1 eq $h2
214 4 370 unless $h1->has_type($type) and $h2->has_type($type)
220 2 368 unless $h1->has_parent($type, $parent) and $h2->has_parent($type, $parent)
238 5 45 if $_[2]{'step'} > $_[2]{'size'}
244 0 0 if $_[0]->has_ancestor($_, $_)
258 5 43 if @lubs and scalar @lubs > 1
270 5 29 if scalar @{[$h->parents($_)];} > 1
310 0 0 if $_[0]->has_types($_[1], $_[2])
327 11 58 $_[2]{'find'} eq $_[1] ? :
348 10 15 $WANT_USER_HOOKS && defined($a = _subsumes_user($_[1], $_[2])) ? :
20 25 defined($a = _subsumes_trivial($_[1], $_[2])) ? :
362 0 25 $_[0] eq $TYPE_TOP ? :
0 25 $_[1] eq $TYPE_TOP ? :
5 25 $_[0] eq $_[1] ? :
10 30 !defined($_[1]) ? :
5 40 !defined($_[0]) ? :
384 10 15 ref $_[0] && ref $_[0] eq 'CODE' ? :
0 25 UNIVERSAL::can($_[0], 'subsumes') ? :
395 0 0 $WANT_USER_HOOKS && defined($ans = _psubsumes_user($_[1], $_[2])) ? :
0 0 defined($ans = _psubsumes_trivial($_[1], $_[2])) ? :
406 0 0 $_[0] eq $_[1] ? :
0 0 $_[1] eq $TYPE_TOP ? :
0 0 $_[0] eq $TYPE_TOP ? :
0 0 !defined($_[1]) ? :
0 0 defined $_[1] ? :
0 0 defined $_[0] ? :
429 0 0 ref $_[0] && ref $_[0] eq 'CODE' ? :
0 0 UNIVERSAL::can($_[0], 'properly_subsumes') ? :
446 0 0 if defined $_[1] and defined $_[2] and $_[1] eq $_[2] or not defined $_[1] || defined $_[2]
451 0 0 if $_[0]->properly_subsumes($_[1], $_[2])
452 0 0 if $_[0]->properly_subsumes($_[2], $_[1])
456 0 8 unless $_[0]->has_types($_[1], $_[2])
457 3 5 if defined $_[1] and defined $_[2] and $_[1] eq $_[2] or not defined $_[1] || defined $_[2]
462 2 3 if $_[0]->has_ancestor($_[1], $_[2])
463 0 3 if $_[0]->has_ancestor($_[2], $_[1])
476 0 0 if $self->properly_extends($t1, $t2)
490 0 0 if $self->properly_subsumes($t1, $t2)
539 0 0 if $_[2]{'step'} > $_[2]{'maxstep'}
540 0 0 if (exists $_[2]{'find'}{$_[1]}) { }
0 0 elsif (exists $_[2]{'found'}{$_[1]}) { }
558 0 0 if not $cmp or $cmp < 0
568 0 0 defined $_ ? :
573 0 0 if (defined $_ and exists $$stratah{$_}) { }
574 0 0 if (not exists $strata[$$stratah{$_}]) { }
583 0 0 if @$last
604 0 0 if $_[2]{'step'} >= $_[2]{'maxstrat'}
606 0 0 if (not exists $_[2]{'laststep'}{$_[1]} or $_[2]{'laststep'}{$_[1]} < $_[2]{'step'})
629 0 0 if $step > scalar @_
633 0 0 unless $h->has_type($types[$i])
636 0 0 unless $h->has_type($types[$j])
639 0 0 unless $cmp
641 0 0 if ($cmp < 0) { }
0 0 elsif ($cmp > 0) { }
642 0 0 if $strata{$types[$i]} < $strata{$types[$j]}
647 0 0 if $strata{$types[$i]} > $strata{$types[$j]}
664 0 0 if ($^W and $VERBOSE)
666 0 0 defined $t1 ? :
0 0 defined $t2 ? :
0 0 defined $default ? :
673 0 0 if ($VERBOSE > 1) { }
686 0 0 unless @lubs
687 0 0 if scalar @lubs > 1
697 0 0 unless $h->has_types(@_)
702 0 0 unless @lubs
703 0 0 if scalar @lubs > 1
718 0 0 unless @glbs
719 0 0 if scalar @glbs > 1
728 0 0 unless $h->has_types(@_)
733 0 0 unless @glbs
734 0 0 if scalar @glbs > 1
750 5 0 ref $_[0] && $_[0]->has_types($_[1], $_[2]) ? :
15 5 $WANT_USER_HOOKS && defined($l = _lub_user($_[1], $_[2])) ? :
15 20 defined($l = _lub_trivial($_[1], $_[2])) ? :
777 5 20 $_[0] eq $_[1] ? :
0 25 $_[0] eq $TYPE_TOP || $_[1] eq $TYPE_TOP ? :
5 25 !defined($_[0]) ? :
5 30 !defined($_[1]) ? :
806 5 15 UNIVERSAL::can($_[2], $_[0]) ? :
15 20 UNIVERSAL::can($_[1], $_[0]) ? :
0 35 ref $_[2] && ref $_[2] eq 'CODE' ? :
10 35 ref $_[1] && ref $_[1] eq 'CODE' ? :
817 0 0 if (defined($cmp = $_[0]->compare($_[1], $_[2])))
819 0 0 if $cmp <= 0
835 0 0 unless $_[0]->has_types($_[1], $_[2])
873 13 56 if (exists $$t2set{$e}) { }
877 0 0 unless $cmp
878 0 0 if ($cmp != $cmpkeep)
884 13 0 if $want
894 18 48 if (exists $$t1set{$e}) { }
898 6 2 unless $cmp
899 2 0 if ($cmp != $cmpkeep)
905 16 2 if $want
939 5 5 ref $_[0] && $_[0]->has_types($_[1], $_[2]) ? :
15 10 $WANT_USER_HOOKS && defined($l = _glb_user($_[1], $_[2])) ? :
10 25 defined($l = _glb_trivial($_[1], $_[2])) ? :
972 0 0 if (defined($cmp = $_[0]->compare($_[1], $_[2])))
974 0 0 if $cmp >= 0
1030 0 0 defined($tattrs = $self->_attributes($type)) ? :
1037 0 0 if (defined($tattrs = $self->_attributes($type)))
1046 0 0 unless ref $self and $self =~ /=HASH\(/
1049 0 0 if (@_)
1054 0 0 if (exists $$self{'attributes'} and exists $$self{'attributes'}{$type})
1065 105 35 if (scalar @_ == 1)
1066 6 99 unless defined $_[0]->_attributes and exists $_[0]->_attributes->{$_[0]}
1076 0 0 defined $_[1] ? :
1081 0 0 defined $_[2] ? :
0 0 defined $_[1] ? :
1095 0 0 unless defined $next and defined $callback
1099 0 0 ref $$args{'start'} ? :
0 0 defined $$args{'start'} ? :
1102 0 0 unless $self->has_types(@q)
1106 0 0 if defined $callback
1107 0 0 if defined $r
1116 0 26 unless defined $next
1120 20 6 ref $$args{'start'} ? :
26 0 defined $$args{'start'} ? :
1123 0 26 unless $self->has_types(@q)
1125 0 26 defined $$args{'visited'} ? :
1132 26 0 unless defined $$args{'step'}
1137 2 96 if exists $$visited{$t}
1139 96 0 if defined $callback
1140 11 85 if defined $r
1152 0 0 unless defined $next and defined $callback
1156 0 0 ref $$args{'start'} ? :
0 0 defined $$args{'start'} ? :
1160 0 0 defined $$args{'ignore'} ? :
1165 0 0 defined $$args{'prev'} ? :
1172 0 0 unless defined $$args{'step'}
1178 0 0 if exists $$ignore{$t}
1181 0 0 if defined $r
1183 0 0 if exists $$ignore{$t}
1199 0 10 unless defined $next and defined $callback
1203 0 0 ref $$args{'start'} ? :
0 10 defined $$args{'start'} ? :
1207 0 10 defined $$args{'prev'} ? :
1214 10 0 unless defined $$args{'step'}
1221 5 45 if defined $r
1226 40 0 if (not defined $$prev{$_}{$t} or $$prev{$_}{$t} < $$args{'step'})
1238 0 0 defined $_[2] ? :
1245 0 0 defined $_[2] ? :
1252 0 0 if defined $_[2] and not defined $_[2]{'start'}
1254 0 0 defined $_[2] ? :
1261 0 26 if defined $_[2] and not defined $_[2]{'start'}
1263 26 0 defined $_[2] ? :