Branch Coverage

blib/lib/Math/BigInt/Calc.pm
Criterion Covered Total %
branch 343 578 59.3


line true false branch
51 0 0 unless @_
55 0 0 if (@_ == 1)
57 0 0 unless defined $param and length $param
59 0 0 if $param eq "base_len"
60 0 0 if $param eq "use_int"
69 0 0 unless defined $param and length $param
71 0 0 unless @_
75 0 0 if ($param eq "base_len" or $param eq "use_int")
83 0 0 if exists $opts->{'base_len'}
84 0 0 if exists $opts->{'use_int'}
94 57 11 if (@_)
97 0 57 unless defined $base_len and $base_len == int $base_len and $base_len > 0
101 0 57 if ($use_int and $base_len > $MAX_EXP_I or not $use_int and $base_len > $MAX_EXP_F)
104 0 0 $use_int ? :
113 56 1 $use_int ? :
117 56 1 if ($use_int) { }
133 0 68 $umax < $BASE ? :
142 0 68 if $MAX_BITS > 32
151 0 0 unless $AND_BITS < $MAX_BITS and $x == $z and $y == $x
158 0 0 unless $XOR_BITS < $MAX_BITS and $x == $z and $y == $x
165 0 0 unless $OR_BITS < $MAX_BITS and $x == $z and $y == $x
172 62 6 unless wantarray
190 194624 31058 if $input_len < $BASE_LEN
193 0 31058 $] < 5.008 ? :
232 0 500 if $yn != $ys
236 50 450 if $rn != 1
240 0 450 if $cn != $cs
245 0 450 if $zn != $zs
246 0 450 if $zn - ($zn - 1) != 1
271 0 50 if $yn != $ys
275 0 50 if $rn != 1
279 0 50 if $cn != $cs
284 0 50 if $zn != $zs
285 0 50 if $zn - ($zn - 1) != 1
289 0 50 $MAX_EXP_F > $MAX_EXP_I ? :
318 0 34034 $BASE_LEN == 1 ? :
347 0 2 unless defined $param and length $param
349 0 2 unless @_
353 2 0 if ($param eq "base_len" or $param eq "use_int")
361 1 6 exists $opts->{'base_len'} ? :
362 1 6 exists $opts->{'use_int'} ? :
378 0 80619 if ($idx < 0)
384 31085 49534 if ($idx > 0)
399 82092 16 if @$x == 1
428 7326 54410 if @$y == 1 and $y->[0] == 0
432 8892 45518 if (@$x == 1 and $x->[0] == 0)
444 10302 74175 ($x->[$j] += $i + $car) >= $BASE ? :
10302 74175 if $car = ($x->[$j] += $i + $car) >= $BASE ? 1 : 0
448 2 392 ($x->[$j] += $car) >= $BASE ? :
2 392 if $car = ($x->[$j] += $car) >= $BASE ? 1 : 0
460 5391 18 if ($i += 1) < $BASE
463 5 0 if $x->[-1] == 0
474 730 16 if ($i -= 1) >= 0
477 3 727 if $x->[-1] == 0 and @$x > 1
490 55276 7605 unless ($s)
492 1546 71486 unless defined $sy->[$j] or $car
493 3664 67822 if $car = ($i -= ($sy->[$j] || 0) + $car) < 0
503 51 7660 if $car = ($sy->[$j] = $i - ($sy->[$j] || 0) - $car) < 0
519 48506 12947 if (@$yv == 1)
522 37661 10845 if (@$xv == 1)
523 1339 36322 if (($xv->[0] *= $yv->[0]) >= $BASE)
530 15 10830 if ($yv->[0] == 0)
543 2025 8805 if $car != 0
548 269 12678 if @$xv == 1 and $xv->[0] == 0
551 3327 9351 if $xv == $yv
559 1592 56972 if $xi == 0
564 48988 7984 if $car
577 0 0 if (@$yv == 1)
580 0 0 if (@$xv == 1)
581 0 0 if (($xv->[0] *= $yv->[0]) >= $BASE)
589 0 0 if ($yv->[0] == 0)
604 0 0 if $car != 0
609 0 0 if @$xv == 1 and $xv->[0] == 0
612 0 0 if $xv == $yv
620 0 0 if $xi == 0
627 0 0 if $car
647 9003 15401 if (@$x == 1 and @$yorg == 1)
649 3918 5085 if (wantarray) { }
661 4201 11200 if (@$yorg == 1)
663 374 3827 if wantarray
675 1408 2793 if @$x > 1 and $x->[-1] == 0
676 374 3827 if wantarray
683 261 10939 if (@$yorg > @$x)
685 260 1 if wantarray
687 260 1 if wantarray
693 1962 8977 if (@$yorg == @$x)
696 1942 204 if $cmp = $x->[$j] - $yorg->[$j]
699 20 1942 if ($cmp == 0)
701 12 8 if wantarray
705 407 1535 if ($cmp < 0)
706 86 321 if (wantarray)
722 10326 186 if ($dd != 1) { }
743 518 9994 unless $v2
746 6843 61167 unless $u2
751 13 67997 $u0 == $v1 ? :
753 62311 5699 if ($q)
759 577235 531524 if $bar = ($x->[$xi] -= $prd + $bar) < 0
761 24 62287 if ($x->[-1] < $car + $bar)
765 101 20 if $car = ($x->[$xi] += $y->[$yi] + $car) >= $BASE
774 3619 6893 if (wantarray)
776 3577 42 if ($dd != 1) { }
807 0 0 if (@$x == 1 and @$yorg == 1)
812 0 0 if wantarray
817 0 0 if (@$yorg == 1)
819 0 0 if wantarray
831 0 0 if @$x > 1 and $x->[-1] == 0
832 0 0 if wantarray
839 0 0 if (@$yorg > @$x)
841 0 0 if wantarray
843 0 0 if wantarray
849 0 0 if (@$yorg == @$x)
852 0 0 if $cmp = $x->[$j] - $yorg->[$j]
855 0 0 if ($cmp == 0)
857 0 0 if wantarray
861 0 0 if ($cmp < 0)
862 0 0 if (wantarray)
879 0 0 if ($dd != 1) { }
904 0 0 unless $v2
907 0 0 unless $u2
912 0 0 $u0 == $v1 ? :
914 0 0 if ($q)
922 0 0 if $bar = ($x->[$xi] -= $prd + $bar) < 0
924 0 0 if ($x->[-1] < $car + $bar)
928 0 0 if $car = ($x->[$xi] += $y->[$yi] + $car) >= $BASE
937 0 0 if (wantarray)
939 0 0 if ($dd != 1) { }
972 107038 19821 if @$cx == 1 and @$cy == 1
982 2825 16996 if $lxy < 0
983 3685 13311 if $lxy > 0
989 9527 30410 if $a = $cx->[$j] - $cy->[$j]
1011 49 92 if $n < 0
1016 6 135 if $n < 0 or $n >= $len
1030 2476 82700 if @$x == 1 and $x->[0] == 0
1034 82700 68425 if ($elem != 0)
1049 25626 374486 @{$_[1];} == 1 && $_[1][0] == 0 ? :
1054 97 113 $_[1][0] % 2 ? :
1059 372 461 $_[1][0] % 2 ? :
1064 17913 12780 @{$_[1];} == 1 && $_[1][0] == 1 ? :
1069 85 84 @{$_[1];} == 1 && $_[1][0] == 2 ? :
1074 0 2 if ($BASE_LEN == 1) { }
1075 0 0 @{$_[1];} == 2 && $_[1][0] == 0 && $_[1][1] == 1 ? :
1077 1 1 @{$_[1];} == 1 && $_[1][0] == 10 ? :
1086 1 77020 if @$x == 0
1087 60958 16063 if @$x == 1
1100 15555 9638 if $x->[$i] != 0
1104 7164 8899 if $i < @$x
1116 1 8105 if $msg
1120 0 8105 unless $@ eq ""
1122 0 8105 unless $n > 0
1132 0 9134 unless defined $e
1135 0 9134 unless ref $e eq ""
1142 0 9134 unless $e =~ /^\d+\z/
1145 0 9134 if $e >= $BASE
1148 0 1868 if $x->$#* > 0 and $i == $x->$#* and $e == 0
1162 3229 11700 if (@$yo > 1)
1171 10964 736 if (@$x == 1)
1178 88 648 if ($b == 0) { }
205 443 elsif ($b == 1) { }
1191 0 205 if $r == $y
1206 0 443 if $r == $y
1218 0 34030 if $c->_is_zero($x) or $c->_is_zero($n)
1222 34030 0 unless ref $b
1224 49 33981 if ($c->_acmp($b, $c->_ten))
1233 164 33817 if ($src >= $xlen or $src == $xlen and not defined $x->[1])
1241 1965 31852 if ($rem == 0) { }
1253 0 185195 if length $vd > $BASE_LEN
1257 31852 0 if $dst > 0
1258 15808 16044 if $x->[-1] == 0 and @$x > 1
1266 1242 20692 if $c->_is_zero($x) or $c->_is_zero($n)
1270 20665 27 unless ref $b
1276 20634 58 if ($bstr =~ /^1(0+)\z/) { }
1294 18991 1643 if ($r)
1303 83547 18991 $i > 0 ? :
1305 0 102538 if length $vd > $BASE_LEN
1310 9541 9450 if $x->[-1] == 0
1315 16804 3830 if ($q)
1331 120 1220 if (@$cy == 1 and $cy->[0] == 0)
1337 244 976 if (@$cx == 1 and $cx->[0] == 1 or @$cy == 1 and $cy->[0] == 1)
1343 1 975 if (@$cx == 1 and $cx->[0] == 0)
1355 571 1482 if substr($y_bin, $len, 1) eq 1
1375 0 56 if ($c->_acmp($twok, $n) > 0)
1386 21 35 if ($c->_is_zero($k)) { }
1432 146 0 if (@$cx == 1)
1446 75 71 if ($cx->[0] <= $#factorials)
1460 0 71 if ($BASE_LEN <= 2)
1468 55 16 if (@$cx == 1 and ($cx->[0] >= 12 and $cx->[0] < 7000))
1488 35 20 if (($k & 1) == 0)
1503 0 55 if ($cx->[0] == 0)
1522 282 0 if ($m < $BASE) { }
1527 10 272 if ($cx->[0] == 0)
1541 16 0 if @$cx == 1
1551 16 0 if (@$cx == 1 and $step == $cx->[0])
1559 0 0 if (@$cx == 1) { }
1574 0 0 if (ref $n eq 'ARRAY') { }
1580 0 0 if ($cx->[0] == 0)
1590 0 0 if ($cx->[0] == 0)
1606 0 0 if ($cx->[0] == 0)
1620 0 0 if ($cx->[0] == 0)
1632 0 0 if ($cx->[0] == 0)
1649 0 85 if @$x == 1 and $x->[0] == 0
1652 0 85 if @$base == 1 and $base->[0] < 2
1655 0 85 if (@$x == 1 and $x->[0] == 1)
1663 0 85 if ($cmp == 0)
1669 4 81 if ($cmp < 0)
1695 17 64 if $acmp == 0
1713 45 19 if $acmp == 0
1727 0 0 wantarray ? :
1736 0 0 if @$x == 1 and $x->[0] == 0
1739 0 0 if (@$x == 1 and $x->[0] == 1)
1741 0 0 wantarray ? :
1750 0 0 unless wantarray
1758 0 0 unless $is_pow10 = $x_orig->[$i] == 0
1762 0 0 wantarray ? :
0 0 if $is_pow10
1763 0 0 wantarray ? :
1773 0 0 if @$x == 1 and $x->[0] == 0
1777 0 0 if (@$x == 1 and $x->[0] == 1)
1779 0 0 wantarray ? :
1787 0 0 if ($acmp == 0)
1789 0 0 wantarray ? :
1794 0 0 if ($acmp < 0)
1796 0 0 wantarray ? :
1827 0 0 wantarray ? :
0 0 if $acmp == 0
1828 0 0 wantarray ? :
1836 0 0 if @$x == 1 and $x->[0] == 0
1839 0 0 if (@$x == 1 and $x->[0] == 1)
1841 0 0 wantarray ? :
1854 0 0 unless $is_pow10 = $x->[$i] == 0
1858 0 0 if $is_pow10
1863 0 0 wantarray ? :
0 0 if $is_pow10
1864 0 0 wantarray ? :
1877 128 523 if (@$x == 1)
1886 208 315 if (@$x % 2) { }
1909 1095 526 if ($cmp > 0) { }
362 164 elsif ($cmp < 0) { }
1913 318 777 if $c->_is_zero($delta)
1927 41 321 if $c->_is_zero($delta)
1938 318 205 if $cmp > 0
1950 69 43 if (@$x == 1)
1951 0 69 if $x->[0] == 0 or $x->[0] == 1
1953 69 0 if (@$n == 1)
1958 3 66 if $yp1 ** $n->[0] == $x->[0]
1966 0 43 if (@$x > 1 || $x->[0] > 0 and $c->_acmp($x, $n) <= 0)
1978 26 17 if ($b =~ /0b1(0+)$/)
2037 0 17 if ($DEBUG)
2048 17 0 $ye < 15 ? :
2055 0 17 if ($DEBUG)
2068 5 12 if ($acmp == 0)
2082 7 5 if ($acmp < 0) { }
5 0 elsif ($acmp > 0) { }
2087 0 7 if ($DEBUG)
2094 0 7 if ($acmp == 0)
2105 0 5 if ($c->_acmp($upper, $delta) <= 0)
2111 0 5 if ($DEBUG)
2118 0 5 if ($acmp == 0)
2132 12 0 if ($c->_acmp($delta, $one) <= 0)
2137 0 0 if ($DEBUG)
2148 0 0 if ($acmp < 0) { }
0 0 elsif ($acmp > 0) { }
2172 97 322 if $c->_acmp($x, $y) == 0
2198 97 386 if $c->_acmp($x, $y) == 0
2223 71 315 unless $c->_is_zero($x1)
2224 54 332 unless $c->_is_zero($y1)
2233 97 381 if $c->_acmp($x, $y) == 0
2257 71 310 unless $c->_is_zero($x1)
2258 54 327 unless $c->_is_zero($y1)
2268 43 220 if @$x == 1 and $x->[0] == 0
2289 10 1062 if @$x == 1 and $x->[0] == 0
2310 10 48 if @$x == 1 and $x->[0] == 0
2345 22 1 if $val != 0
2346 7 16 if $len >= 0
2365 1478 757 if $len == 0
2372 0 2235 if (length $val > $BASE_LEN)
2375 2074 161 if $val != 0
2376 757 1478 if $len >= 0
2391 230 21 if $l % 8 != 0
2406 0 166 if ($c->_is_zero($y))
2411 0 166 if ($c->_is_one($y))
2426 166 287 if $c->_is_zero($b)
2438 25 141 unless $c->_is_one($a)
2440 64 77 $sign == 1 ? :
2448 154 308 if ($c->_is_one($mod))
2455 40 268 if ($c->_is_zero($num))
2456 13 27 if ($c->_is_zero($exp)) { }
2474 877 816 if (substr($expbin, $len, 1) eq 1)
2493 17 4090 if (@$x == 1 and $x->[0] == 0)
2494 4 13 if (@$y == 1 and $y->[0] == 0) { }