Branch Coverage

blib/lib/Set/Infinite.pm
Criterion Covered Total %
branch 314 464 67.6


line true false branch
59 4193 0 unless $Set::Infinite::TRACE
63 0 0 exists $parm{'arg'} ? :
0 0 if $Set::Infinite::TRACE == 1
71 0 0 unless $Set::Infinite::TRACE
74 0 0 exists $parm{'arg'} ? :
84 0 0 unless $Set::Infinite::TRACE
87 0 0 UNIVERSAL::isa($parm{'arg'}, 'Set::Infinite') ? :
0 0 defined $parm{'arg'} ? :
0 0 exists $parm{'arg'} ? :
120 791 894 unless ($$self{'too_complex'} or $$arg{'too_complex'})
134 0 3742 if $Set::Infinite::TRACE
137 2370 1370 if ($$self{'too_complex'} or defined $min[0] and $min[0] == $Set::Infinite::neg_inf or defined $max[0] and $max[0] == $Set::Infinite::inf)
149 1366 4 unless $rule{'unit'}
150 80 1290 unless $rule{'quant'}
152 1370 0 unless exists $rule{'strict'}
157 52 1318 unless (defined $min)
158 0 52 if $Set::Infinite::TRACE
162 1318 0 unless exists $rule{'fixtype'}
166 0 1318 unless ref $rule{'sub_unit'} eq 'CODE'
176 0 3324 if (not $rule{'fixtype'}) { }
184 1434 1890 if $rule{'strict'} and not $rule{'strict'}->intersects($tmp)
189 0 1318 if $Set::Infinite::TRACE
202 62 0 if $tail
216 48 0 if $tail
225 0 16 if $Set::Infinite::TRACE
228 0 16 if exists $param{'freq'}
233 11 5 if exists $param{'by'}
237 0 16 if ($count <= 0)
238 0 0 if $Set::Infinite::TRACE
246 11 5 if (@by) { }
249 3 8 if (not $self->is_too_complex) { }
258 12 16 $_ < 0 ? :
262 8 0 if (@pos_by)
268 6 2 if (@neg_by)
281 34 6 if not $last or $$last{'a'} != $$_{'a'}
291 5 11 if $count == $Set::Infinite::inf
293 3 8 if (not $self->is_too_complex) { }
304 0 21 unless $first
305 1 20 if $last and $$last{'a'} == $$first{'list'}[0]{'a'}
309 7 13 if $count <= 0
325 0 5 unless (defined $parent_min[0])
332 2 3 if ($parent_min[0]->min == $Set::Infinite::neg_inf) { }
339 2 0 if $$first{'list'}[0]{'a'} == $$first{'list'}[0]{'b'} and $$first{'list'}[0]{'open_begin'} || $$first{'list'}[0]{'open_end'}
367 0 188 unless defined $parent[0]
368 0 188 unless defined $parent[1]
371 0 188 unless (defined $first[0][0])
373 0 0 if $Set::Infinite::TRACE
376 0 188 unless (defined $first[1][0])
378 0 0 if $Set::Infinite::TRACE
383 0 188 unless (defined $min[0][0] and defined $min[1][0])
387 65 123 $min[0][0] < $min[1][0] ? :
391 0 253 if ($first1->is_empty)
401 196 57 unless ($intersection->is_null)
403 65 131 if ($intersection->is_too_complex) { }
413 1 130 if ($#{$$intersection{'list'};} > 0)
419 130 1 if (defined $parent[$which] and defined $parent[1 - $which])
431 0 23 unless (defined $first[0][0])
439 1 22 unless (defined $min[0][0])
440 0 1 if $Set::Infinite::TRACE
443 0 22 unless (defined $min[1][0])
444 0 0 if $Set::Infinite::TRACE
448 2 20 $min[0][0] < $min[1][0] ? :
454 1 21 $min[0][0] == $min[1][0] ? :
458 20 2 if (not defined $parent1 or $parent1->is_null) { }
467 3 19 if ($first->intersects($tail))
473 0 22 if $Set::Infinite::TRACE
481 0 0 if ref $first
482 0 0 if ref $tail
484 0 0 if ref $first
485 0 0 if defined $more
496 16 17 if ($first2[0] <= $first1[0]) { }
503 17 0 if (defined $first1[1]) { }
520 25 339 if defined $more
527 669 440 if ($min[0] == $Set::Infinite::neg_inf or $min[0] == $Set::Infinite::inf)
551 0 5 unless (defined $parent_max[0])
558 2 3 if ($parent_max[0]->max == $Set::Infinite::inf) { }
565 2 0 if $$last{'list'}[0]{'a'} == $$last{'list'}[0]{'b'} and $$last{'list'}[0]{'open_end'} || $$last{'list'}[0]{'open_begin'}
595 0 123 unless defined $parent[0]
596 0 123 unless defined $parent[1]
600 0 123 unless (defined $last[0][0])
601 0 0 if $Set::Infinite::TRACE
604 0 123 unless (defined $last[1][0])
605 0 0 if $Set::Infinite::TRACE
610 0 123 unless (defined $max[0][0] and defined $max[1][0])
611 0 0 if $Set::Infinite::TRACE
612 0 0 if $Set::Infinite::TRACE
617 19 104 $max[0][0] > $max[1][0] ? :
622 0 142 if ($last1->is_null)
629 133 9 unless ($intersection->is_null)
631 19 114 if ($intersection->is_too_complex) { }
632 0 19 if $Set::Infinite::TRACE
637 0 114 if $Set::Infinite::TRACE
644 0 114 if $Set::Infinite::TRACE
645 1 113 if ($#{$$intersection{'list'};} > 0)
651 113 1 if (defined $parent[$which] and defined $parent[1 - $which])
665 1 9 unless (defined $max[0][0])
668 0 9 unless (defined $max[1][0])
672 1 8 $max[0][0] > $max[1][0] ? :
677 2 7 $max[0][0] == $max[1][0] ? :
681 7 2 if (not defined $parent1 or $parent1->is_null) { }
689 2 7 if ($last->intersects($tail))
705 12 16 if ($last2[0] <= $last1[0]) { }
712 14 2 if (defined $last1[1]) { }
726 0 0 if ref $last
727 0 0 if ref $tail
729 0 0 if ref $last
730 0 0 if defined $more
741 0 158 if defined $more
748 677 351 if ($max[0] == $Set::Infinite::neg_inf or $max[0] == $Set::Infinite::inf)
752 107 244 if ($max[1])
753 107 0 if ($last->min <= $max[0])
774 2223 99 unless (exists $$self{'first'})
775 0 2223 if $Set::Infinite::TRACE
776 1666 557 if ($$self{'too_complex'}) { }
779 1666 0 if (exists $Set::Infinite::_first{$method}) { }
791 1750 15 wantarray ? :
797 1653 35 unless (exists $$self{'last'})
798 0 1653 if $Set::Infinite::TRACE
799 1344 309 if ($$self{'too_complex'}) { }
801 1344 0 if (exists $Set::Infinite::_last{$method}) { }
813 1357 22 wantarray ? :
820 1036 2009 if ($$self{'too_complex'})
823 0 2009 if $Set::Infinite::TRACE
829 8 2001 unless $param{'mode'}
831 0 2009 unless (ref $param{'value'} eq 'ARRAY')
834 2009 0 unless $param{'unit'}
839 0 2009 unless defined $sub_unit
840 0 2009 unless defined $sub_mode
858 1 2393 if $this > $next
859 2367 26 if ($this == $next)
869 0 2009 if $Set::Infinite::TRACE
870 2009 0 if $$self{'fixtype'}
876 129 1573 $_[0]{'too_complex'} ? :
881 100 251 $_[0]{'too_complex'} ? :
889 0 2317 if $Set::Infinite::TRACE
891 1525 792 if ($$self{'too_complex'}) { }
893 697 828 if ($$self{'method'} ne 'quantize')
895 7 690 if ($$self{'method'} eq 'union') { }
4 686 elsif ($$self{'method'} eq 'intersection') { }
910 0 697 if $Set::Infinite::TRACE
915 2 826 if ($$res{'too_complex'}) { }
931 0 1620 if $Set::Infinite::TRACE
944 48 97 unless $before
946 17 128 unless $after
953 2 4 if (defined $$self{'backtrack_callback'})
959 2 2 unless $before
961 0 4 unless $after
968 2 878 if ($$arg{'too_complex'}) { }
995 880 2358 unless $$self{'too_complex'}
997 0 2358 if $Set::Infinite::TRACE
1000 0 2358 if ($Set::Infinite::backtrack_depth > $Set::Infinite::max_backtrack_depth)
1005 2287 71 if (exists $Set::Infinite::_backtrack{$$self{'method'}})
1010 211 2147 if (ref $$self{'parent'} eq 'ARRAY') { }
1014 211 0 if $$result1{'too_complex'}
1016 147 64 if $$result2{'too_complex'}
1020 169 42 if ($$result1{'too_complex'} or $$result2{'too_complex'}) { }
1036 0 2358 if $Set::Infinite::TRACE
1043 233 3200 ref $_[0] eq ref $a1 ? :
1046 8 3425 if ($$a1{'too_complex'})
1049 33 3400 if ($$b1{'too_complex'})
1052 8 3425 if ($$a1{'too_complex'} or $$b1{'too_complex'})
1062 0 1634 unless ref $callback eq 'CODE'
1065 2 1632 if (@_ and $_[0] eq 'backtrack_callback')
1070 6 1628 if ($$self{'too_complex'}) { }
1071 0 6 if $Set::Infinite::TRACE
1076 0 1628 if $Set::Infinite::TRACE
1087 2812 350 ref $_[0] eq ref $a1 ? :
1089 0 3162 if $Set::Infinite::TRACE
1090 705 2457 if ($$a1{'too_complex'} or $$b1{'too_complex'})
1093 20 685 unless ($$arg0{'too_complex'} or $$arg1{'too_complex'})
1095 0 20 if $Set::Infinite::TRACE
1099 601 2541 if ($$a1{'too_complex'})
1100 600 1 unless $$b1{'too_complex'}
1102 85 3057 if ($$b1{'too_complex'})
1103 84 1 unless $$a1{'too_complex'}
1105 572 2570 if ($$a1{'too_complex'} or $$b1{'too_complex'})
1106 0 572 if $Set::Infinite::TRACE
1115 6 6 ref $_[0] eq ref $a1 ? :
1117 8 4 if ($$a1{'too_complex'})
1118 7 1 unless $$b1{'too_complex'}
1120 2 10 if ($$b1{'too_complex'})
1121 1 1 unless $$a1{'too_complex'}
1124 8 3 unless ($$b1{'too_complex'} or $$a1{'too_complex'})
1132 0 7 unless defined $tmp->max
1140 6 1 if defined $before and $tmp->intersects($before)
1142 5 2 if defined $after and $tmp->intersects($after)
1154 362 1193 if (@_)
1155 7 355 ref $_[0] eq ref $a1 ? :
1157 0 362 if $Set::Infinite::TRACE
1160 0 362 if $Set::Infinite::TRACE
1163 0 1193 if $Set::Infinite::TRACE
1164 21 1172 if ($$a1{'too_complex'})
1165 0 21 if $Set::Infinite::TRACE
1174 137 9 ref $_[0] eq ref $a1 ? :
1176 35 111 if ($$a1{'too_complex'} or $$b1{'too_complex'})
1185 3287 50 ref $_[0] eq ref $a1 ? :
1187 0 3337 if $Set::Infinite::TRACE
1188 37 3300 if ($$a1{'too_complex'} or $$b1{'too_complex'})
1189 0 37 if $Set::Infinite::TRACE
1190 0 37 if $b1->is_null
1191 3 34 if $a1->is_null
1205 0 11 if $Set::Infinite::TRACE
1206 4 7 if ($$a1{'too_complex'})
1208 0 4 ref $_[0] eq ref $a1 ? :
1210 0 4 if ($$b1{'too_complex'})
1211 0 0 if $Set::Infinite::TRACE
1214 0 0 $b1 == $b0 ? :
0 4 if $Set::Infinite::TRACE
1215 2 2 $b1 == $b0 ? :
1218 0 7 if ($$b1{'too_complex'})
1219 0 0 if $Set::Infinite::TRACE
1222 0 0 $b1 == $a1 ? :
0 7 if $Set::Infinite::TRACE
1223 4 3 $b1 == $a1 ? :
1229 2745 8256 if exists $$self{'min'}
1230 957 7299 if ($$self{'too_complex'})
1232 957 0 if defined $first[0]
1241 2859 7599 if exists $$self{'max'}
1242 940 6659 if ($$self{'too_complex'})
1244 940 0 if defined $last[0]
1254 0 2 if $$self{'too_complex'}
1261 4 9 if ($$self{'too_complex'})
1264 0 4 unless defined $max[0] and defined $min[0]
1273 0 72 if $$tmp1{'too_complex'} or $$tmp2{'too_complex'}
1285 3268 0 if (ref $self)
1287 3252 16 unless defined $tmp
1288 3 13 if ($$self{'too_complex'})
1296 0 0 if defined $tmp
1303 0 0 unless $$self{'too_complex'}
1304 0 0 ref $$self{'parent'} eq 'ARRAY' ? :
1314 0 239 $Set::Infinite::PRETTY_PRINT ? :
239 6974 if $$self{'too_complex'}