Branch Coverage

blib/lib/Math/Fraction.pm
Criterion Covered Total %
branch 173 264 65.5


line true false branch
79 2 58 if (&_is_decimal($_[0]) and &_is_decimal($_[1]) and &_is_decimal($_[2])) { }
46 12 elsif (&_is_decimal($_[0]) and &_is_decimal($_[1])) { }
5 7 elsif (&_is_decimal($_[0])) { }
2 5 elsif ($_[0] =~ m[\s*([\+\-]?)\s*([0-9e\.\+\-]+)\s+([0-9e\.\+\-]+)\s*/\s*([0-9e\.\+\-]+)]) { }
5 0 elsif ($_[0] =~ m[\s*([0-9e\.\+\-]+)\s*/\s*([0-9e\.\+\-]+)]) { }
85 0 2 if $decimal
89 1 45 if $decimal
95 2 3 unless $decimal
99 0 3 if $decimal
107 0 2 if $decimal
111 0 5 if $decimal
116 0 60 if $frac[1] == 0
118 33 27 if (&_tag($REDUCE, \@tags) ne 'NO_REDUCE' and &_tag($RED_STATE, \@tags) ne 'IS_REDUCED')
123 8 25 if $not_reduced and &_tag($AUTO, \@tags) eq 'AUTO'
127 20 40 if &_tag($RED_STATE, \@tags) eq 'IS_REDUCED'
149 23 20 if ($mixed eq 'MIXED') { }
0 20 elsif ($mixed eq 'MIXED_RAW') { }
0 20 elsif ($mixed eq 'RAW') { }
152 12 11 if $frac[0] != 0
153 11 12 if $frac[0] != 0 and $frac[1] != 0
154 22 1 if $frac[1] != 0
155 0 23 if $string eq ''
162 0 0 $frac[0] >= 0 ? :
172 23 20 if ($_[0] eq 'MIXED')
174 18 5 unless ref $frac[0]
192 2 0 unless ref $frac[0]
193 0 0 if ref $frac[0]
199 1 8 unless ref $frac[0]
200 8 0 if ref $frac[0]
211 0 6 if $_[0] eq 'INC_DEF'
215 0 6 unless $TAGS{$tag}
217 6 0 if (ref $self eq 'Math::Fraction') { }
219 3 3 if $tags[$num] eq $tag
220 0 3 if $tags[$num] eq undef and not $default
221 0 0 if $DEF{'CURRENT'}{'TAGS'}[$num] eq $tag and $tags[$num] eq undef and $default
226 0 0 unless $set = $_[0]
227 0 0 unless exists $DEF{$set}
228 0 0 if $DEF{$set}{'TAGS'}[$num] eq $tag
238 0 5 if (ref $self eq 'Math::Fraction') { }
5 0 elsif (ref $self ne 'Math::Fraction') { }
239 0 0 if $_[0] eq 'INC_DEF'
243 0 0 if $tags[$num] eq undef and not $inc_def
244 0 0 if $tags[$num] eq undef and $inc_def
248 3 2 unless $set = $_[0]
249 0 5 unless exists $DEF{$set}
258 3 2 unless $set = $_[0]
259 0 5 unless exists $DEF{$set}
273 0 1 unless $_[0]
274 1 0 if $_[0]
284 1 0 if (exists $DEF{$name} and not $DEF{$name}{'READONLY'}) { }
295 1 1 if (not $name) { }
311 3 0 if (exists $DEF{$_[0]}) { }
312 3 0 if exists $DEF{$_[0]}
322 1 0 unless $name = shift()
323 0 1 if not $name or $name eq 'RAND'
330 0 7 if ($DEF{$name2}{'READONLY'} or $name2 eq 'BLANK' or not exists $DEF{$name1}) { }
336 2 5 unless $name2 eq 'CURRENT'
337 5 2 if $name2 eq 'CURRENT'
343 1 0 if (exists $DEF{$_[1]} and not $DEF{$_[1]}{'SYSTEM'})
395 0 9 if ($tagnum == -1) { }
3 6 elsif (ref $self eq 'Math::Fraction') { }
402 1 2 if ($tagnum == $SIZE) { }
0 2 elsif ($tagnum == $REDUCE) { }
404 0 1 if $newtag eq 'SMALL'
405 1 0 if $newtag eq 'BIG'
407 0 0 if &_tag($REDUCE, \@newtags) eq 'REDUCE'
427 11 5 if ref $_[1] eq 'Math::Fraction'
428 5 11 if ref $_[1] ne 'Math::Fraction'
432 2 15 if (&_tag($REDUCE, \@tags) eq 'NO_REDUCE') { }
443 1 13 if (&_tag($AUTO, \@tags) eq 'AUTO' and not $skipauto and $tags[$SIZE] eq 'SMALL' and $frac[0] =~ /[eE]/ || $frac[1] =~ /[eE]/)
457 0 0 if ref $frac1 ne 'Math::Fraction'
458 0 0 if ref $frac2 ne 'Math::Fraction'
469 2 4 if ref $_[1] eq 'Math::Fraction'
470 4 2 if ref $_[1] ne 'Math::Fraction'
474 0 7 if (&_tag($REDUCE, \@tags) eq 'NO_REDUCE') { }
482 1 4 if (&_tag($AUTO, \@tags) eq 'AUTO' and not $skipauto and $tags[$SIZE] eq 'SMALL' and $frac[0] =~ /[eE]/ || $frac[1] =~ /[eE]/)
496 0 0 if ref $frac1 ne 'Math::Fraction'
497 0 0 if ref $frac2 ne 'Math::Fraction'
507 1 0 if ref $_[$_[2]] eq 'Math::Fraction'
508 0 1 if ref $_[$_[2]] ne 'Math::Fraction'
510 0 1 if ref $_[not $_[2]] eq 'Math::Fraction'
511 1 0 if ref $_[not $_[2]] ne 'Math::Fraction'
518 0 1 if (&_tag($AUTO, \@tags) eq 'AUTO' and not $skipauto and $tags[$SIZE] eq 'SMALL' and $frac[0] =~ /[eE]/ || $frac[1] =~ /[eE]/)
536 0 0 if (ref $frac[0]) { }
557 0 0 if ref $_[1] eq 'Math::Fraction'
558 0 0 if ref $_[1] ne 'Math::Fraction'
560 0 0 if (&_tag($REDUCE, \@tags) == 'NO_REDUCE') { }
578 62 1 if $auto
582 0 125 if (ref $num eq 'Math::BigFloat') { }
12 113 elsif (ref $num eq 'Math::BigInt') { }
0 113 elsif (ref $num) { }
5 108 elsif ($num =~ /[\.\e]/) { }
583 0 0 unless $auto
586 0 12 unless $auto
592 123 2 if ($auto)
595 16 107 if $length > 15
598 10 53 if ($$tagsref[$SIZE] eq 'BIG')
599 9 1 unless $decimal
600 1 9 if $decimal
602 53 10 if ($$tagsref[$SIZE] eq 'SMALL' and $auto)
617 3 13 if $length > 15
619 0 8 if ($$tagsref[$SIZE] eq 'BIG' and $direction eq 'BOTH') { }
6 2 elsif ($$tagsref[$SIZE] eq 'SMALL') { }
635 24 9 if ($gcd == 1) { }
645 44 7 if $frac[0]
655 108 73 unless $TAGS{$_}
669 329 423 if $return = ${$ref;}[$item]
676 9 0 if (exists $TAGS{$item}) { }
687 0 22 if ($tags1[$INTERNAL] eq 'CONVERTED') { }
9 13 elsif ($tags2[$INTERNAL] eq 'CONVERTED') { }
692 49 2 if $tags1[$_] eq $tags2[$_]
702 12 65 if (ref $x) { }
706 2 63 if $y > 1e+17
714 1 239 if $x0 > 99999999 || $x > 999999999 and int($x0 / $x) * $x + $y != $x0
728 0 1 if ($big eq 'BIG') { }
749 1 11 if ref $decimal
772 10 2 unless $int_part
774 1 11 if $big
793 612 631 if ($length <= $pat_len)
794 578 34 unless $length
796 2 32 if $pat_lastb eq $_
797 2 30 if ($pat_lastb eq $_ - 1)
813 2 0 unless $big
814 0 2 if $big
819 0 2 if $big
820 0 2 if $big
821 0 2 if $big
824 0 2 if $big
825 2 0 unless $big
826 2 0 if $pass
833 4 8 if ($repeat) { }
836 1 3 if $big