Branch Coverage

blib/lib/Math/FractionManip.pm
Criterion Covered Total %
branch 161 264 60.9


line true false branch
63 2 62 if (_is_decimal($_[0]) and _is_decimal($_[1]) and _is_decimal($_[2])) { }
50 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\.\+\-]+)]) { }
69 0 2 if $decimal
74 3 47 if $decimal
81 2 3 unless $decimal
85 0 3 if $decimal
94 0 2 if $decimal
99 0 5 if $decimal
105 0 64 if $frac[1] == 0
106 33 31 if (_tag($REDUCE, \@tags) ne 'NO_REDUCE' and _tag($RED_STATE, \@tags) ne 'IS_REDUCED')
109 6 27 if $not_reduced and _tag($AUTO, \@tags) eq 'AUTO'
111 19 45 if _tag($RED_STATE, \@tags) eq 'IS_REDUCED'
122 14 26 if ($mixed eq 'MIXED') { }
0 26 elsif ($mixed eq 'MIXED_RAW') { }
0 26 elsif ($mixed eq 'RAW') { }
125 7 7 if $frac[0] != 0
126 6 8 if $frac[0] != 0 and $frac[1] != 0
127 13 1 if $frac[1] != 0
128 0 14 if $string eq ''
137 0 0 $frac[0] >= 0 ? :
148 14 26 if ($_[0] eq 'MIXED')
150 12 2 unless ref $frac[0]
168 2 0 unless ref $frac[0]
169 0 0 if ref $frac[0]
175 1 0 unless ref $frac[0]
176 0 0 if ref $frac[0]
187 0 6 if $_[0] eq 'INC_DEF'
191 0 6 unless $TAGS{$tag}
193 6 0 if (ref $self eq 'Math::FractionManip') { }
195 3 3 if $tags[$num] eq $tag
196 0 3 if $tags[$num] eq undef and not $default
197 0 0 if $DEF{'CURRENT'}{'TAGS'}[$num] eq $tag and $tags[$num] eq undef and $default
203 0 0 unless $set = $_[0]
204 0 0 unless exists $DEF{$set}
205 0 0 if $DEF{$set}{'TAGS'}[$num] eq $tag
215 0 5 if (ref $self eq 'Math::FractionManip') { }
5 0 elsif (ref $self ne 'Math::FractionManip') { }
216 0 0 if $_[0] eq 'INC_DEF'
220 0 0 if $tags[$num] eq undef and not $inc_def
221 0 0 if $tags[$num] eq undef and $inc_def
226 3 2 unless $set = $_[0]
227 0 5 unless exists $DEF{$set}
236 3 2 unless $set = $_[0]
237 0 5 unless exists $DEF{$set}
251 0 1 unless $_[0]
252 1 0 if $_[0]
262 1 0 if (exists $DEF{$name} and not $DEF{$name}{'READONLY'}) { }
274 0 0 if (not $name) { }
290 2 0 if (exists $DEF{$_[0]}) { }
291 2 0 if exists $DEF{$_[0]}
302 1 0 unless $name = shift()
303 0 1 if not $name or $name eq 'RAND'
310 0 3 if ($DEF{$name2}{'READONLY'} or $name2 eq 'BLANK' or not exists $DEF{$name1}) { }
317 1 2 unless $name2 eq 'CURRENT'
318 2 1 if $name2 eq 'CURRENT'
324 0 0 if (exists $DEF{$_[1]} and not $DEF{$_[1]}{'SYSTEM'})
376 0 7 if ($tagnum == -1) { }
3 4 elsif (ref $self eq 'Math::FractionManip') { }
385 1 2 if ($tagnum == $SIZE) { }
0 2 elsif ($tagnum == $REDUCE) { }
387 0 1 if $newtag eq 'SMALL'
388 1 0 if $newtag eq 'BIG'
391 0 0 if _tag($REDUCE, \@newtags) eq 'REDUCE'
414 10 6 if ref $_[1] eq 'Math::FractionManip'
415 6 10 if ref $_[1] ne 'Math::FractionManip'
419 4 13 if (_tag($REDUCE, \@tags) eq 'NO_REDUCE') { }
432 1 15 if (_tag($AUTO, \@tags) eq 'AUTO' and not $skipauto and $tags[$SIZE] eq 'SMALL' and $frac[0] =~ /[eE]/ || $frac[1] =~ /[eE]/)
446 0 1 if ref $frac1 ne 'Math::FractionManip'
447 0 1 if ref $frac2 ne 'Math::FractionManip'
458 3 4 if ref $_[1] eq 'Math::FractionManip'
459 4 3 if ref $_[1] ne 'Math::FractionManip'
463 2 6 if (_tag($REDUCE, \@tags) eq 'NO_REDUCE') { }
472 1 6 if (_tag($AUTO, \@tags) eq 'AUTO' and not $skipauto and $tags[$SIZE] eq 'SMALL' and $frac[0] =~ /[eE]/ || $frac[1] =~ /[eE]/)
486 0 1 if ref $frac1 ne 'Math::FractionManip'
487 0 1 if ref $frac2 ne 'Math::FractionManip'
498 2 0 if ref $_[$_[2]] eq 'Math::FractionManip'
499 0 2 if ref $_[$_[2]] ne 'Math::FractionManip'
501 0 2 if ref $_[not $_[2]] eq 'Math::FractionManip'
502 2 0 if ref $_[not $_[2]] ne 'Math::FractionManip'
509 0 2 if (_tag($AUTO, \@tags) eq 'AUTO' and not $skipauto and $tags[$SIZE] eq 'SMALL' and $frac[0] =~ /[eE]/ || $frac[1] =~ /[eE]/)
527 0 1 if (ref $frac[0]) { }
548 0 0 if ref $_[1] eq 'Math::FractionManip'
549 0 0 if ref $_[1] ne 'Math::FractionManip'
551 0 0 if (_tag($REDUCE, \@tags) == 'NO_REDUCE') { }
571 67 0 if $auto
575 0 133 if (ref $num eq 'Math::BigFloat') { }
4 129 elsif (ref $num eq 'Math::BigInt') { }
0 129 elsif (ref $num) { }
9 120 elsif ($num =~ /[\.\e]/) { }
576 0 0 unless $auto
580 0 4 unless $auto
589 133 0 if ($auto)
592 4 129 if $length > 15
595 2 65 if ($tagsref->[$SIZE] eq 'BIG')
596 2 0 unless $decimal
597 0 2 if $decimal
599 65 2 if ($tagsref->[$SIZE] eq 'SMALL' and $auto)
614 0 12 if $length > 15
616 0 6 if ($tagsref->[$SIZE] eq 'BIG' and $direction eq 'BOTH') { }
6 0 elsif ($tagsref->[$SIZE] eq 'SMALL') { }
626 48 254 unless defined $_[0]
634 27 6 if ($gcd == 1) { }
645 47 8 if $frac[0]
655 113 81 unless $TAGS{$_}
668 338 431 if $return = do { $ref }->[$item]
675 7 0 if (exists $TAGS{$item}) { }
687 0 23 if ($tags1[$INTERNAL] eq 'CONVERTED') { }
10 13 elsif ($tags2[$INTERNAL] eq 'CONVERTED') { }
694 51 0 if $tags1[$_] eq $tags2[$_]
701 0 71 if (ref $x) { }
706 0 71 if $y > 1e+17
715 1 178 if $x0 > 99999999 || $x > 999999999 and int($x0 / $x) * $x + $y != $x0
740 0 13 if ref $decimal
763 10 3 unless $int_part
765 0 13 if $big
785 4 17 if ($length <= $pat_len)
786 0 4 unless $length
788 2 2 if $pat_lastb eq $_
789 2 0 if ($pat_lastb eq $_ - 1)
806 2 0 unless $big
807 0 2 if $big
813 0 2 if $big
814 0 2 if $big
815 0 2 if $big
818 0 2 if $big
819 2 0 unless $big
820 2 0 if $pass
827 4 9 if ($repeat) { }
830 0 4 if $big