Branch Coverage

blib/lib/Data/Float.pm
Criterion Covered Total %
branch 140 180 77.7


line true false branch
366 71 578 if $value == 0
368 339 239 if ($exp < 0)
373 700 2146 if $exp & 1
446 2 35 unless $exp >= $min_finite_exp and $exp <= $max_finite_exp
575 0 8 $len_minexp > $len_maxexp ? :
233 35 defined $options ? :
74 194 defined $val ? :
2 37 if float_is_nan $val
20 17 if signbit $val != signbit $signfrom
18 24 if $val == 0
3 21 if $val != $val
9 12 if $val < 0
6 15 if $val == $pos_infinity
3 12 $val < 1 * 2**-1022 ? :
2 39 if $val != $val
2 37 if ($val == $pos_infinity) { }
2 35 elsif ($val == $neg_infinity) { }
1 3 $sign eq '-' ? :
4 2 if ($strat =~ /\ASTRING=(.*)\z/s) { }
1 1 elsif ($strat eq 'SUBNORMAL') { }
1 0 elsif ($strat =~ /\AEXPONENT=([-+]?[0-9]+)\z/) { }
6 29 if ($val == 0) { }
0 0 if ($strat eq 'NORMAL') { }
0 0 elsif ($strat eq 'SUBNORMAL') { }
0 31 if ($digits eq '0' and $sgnf != 0)
0 31 if $ndigits <= 0
22 10 if $mindigits < $number
32 30 if ($mod =~ /\A(?:ATLEAST|EXACTLY)\z/)
0 0 if $maxdigits > $number
0 62 if ($mod =~ /\A(?:ATMOST|EXACTLY)\z/)
0 62 unless $mod =~ /\A(?:AT(?:MO|LEA)ST|EXACTLY|IGNORE)\z/
0 31 if $maxdigits < $mindigits
0 13 $ndigits > $maxdigits ? :
18 13 $ndigits < $mindigits ? :
2 0 unless $d eq '0'
1 1 if ($digits =~ /\A2/)
2 2 if ($chopped =~ /\A[89abcdef]/ and not $chopped =~ /\A80*\z/ && $digits =~ /[02468ace]\z/)
11 20 if ($ndigits > length $digits) { }
4 16 elsif ($ndigits < length $digits) { }
2 0 if $nexpdigits < 4
2 29 if ($mod eq 'ATLEAST') { }
0 29 elsif ($mod ne 'IGNORE') { }
3 28 $sign eq '-' ? :
6 25 $exp < 0 ? :
2 16 float_is_nan $b ? :
18 144 if (float_is_nan $a) { }
16 128 elsif (float_is_nan $b) { }
8 120 elsif (float_is_zero $a and float_is_zero $b) { }
0 62 unless float_is_nzfinite $val
19 43 if ($val < 0)
5 57 if ($val < 1 * 2**-1022)
10 67 if ($val < $powhalf[$i])
70 200 if ($val >= $powtwo[$i])
7 50 if ($val < 1) { }
27 23 elsif ($val >= 2) { }
0 28 if $val != $val
11 17 signbit $val ? :
5 13 unless defined $frac_digits
7 11 unless defined $in_exp
6 12 if ($digits eq '')
9 3 if $digits =~ /(.+)/gs
11 1 $limbs[0] < 33554432 ? :
0 0 $limbs[0] < 134217728 ? :
12 0 $limbs[0] < 67108864 ? :
0 12 if ($val_exp > 1023) { }
0 12 elsif ($val_exp < -1075) { }
0 12 elsif ($val_exp < -1022) { }
0 0 if pop @limbs != 0
0 0 if ($limbs[$gbit_lpos] & $sbit_mask)
0 0 if ($gbit_bpos == 27 and $gbit_lpos != 0) { }
0 0 unless ($sbit)
0 0 if ($sbit) { }
0 0 if ($limbs[$gbit_lpos] & $gbit_mask)
0 12 if (@limbs > $gbit_lpos)
3 15 $sign eq '-' ? :
6 12 $1 eq '-' ? :
18 36 if ($str =~ /\A([-+]?)(?:0x)?([0-9a-f]+)(?:\.([0-9a-f]+)+)? (?:p([-+]?[0-9]+))?\z/xi) { }
18 18 elsif ($str =~ /\A([-+]?)inf(?:inity)?\z/i) { }
18 0 elsif ($str =~ /\A([-+]?)s?nan\z/is) { }
7 15 if $dir != $dir or $val == $dir
7 8 $dir > $val ? :
5 28 if $val != $val or $val == 9**9**9
4 24 if $val == -9**9**9
8 16 if $val == 0
4 0 if $exp == 1023
4 4 if ($significand == 2)
2 6 if ($significand == 1 and $exp != -1022)
8 8 if ($sign eq '+') { }
44 96 $val == 0 ? :
59 81 ($val == 0 ? sprintf('%+.f', $val) eq '-0' : $val < 0) ? :