Branch Coverage

blib/lib/Rstats/Util.pm
Criterion Covered Total %
branch 204 746 27.3


line true false branch
41 4318 0 if ref $_[0]
42 11028 3730 if ref $_[0]
43 4042 7 unless is_positive_infinite($_[0])
44 4049 0 if ref $_[0]
45 4042 0 if ref $_[0]
78 0 34 unless defined $value and length $value
82 30 4 if (&Scalar::Util::looks_like_number($value)) { }
93 0 13 unless defined $value and length $value
100 3 10 if ($value =~ /^([\+\-]?[^\+\-]+)i$/) { }
10 0 elsif ($value =~ /^([\+\-]?[^\+\-]+)(?:([\+\-][^\+\-i]+)i)?$/) { }
107 6 4 unless defined $im
113 11 2 if (defined looks_like_number($re) and defined looks_like_number($im)) { }
124 27 0 if (not ref $value) { }
125 27 0 if (is_perl_number($value)) { }
135 0 0 if (is_character($value) or is_integer($value) or is_double($value)) { }
146 4115 4818 if (is_character($element) or is_integer($element) or is_double($element) and not is_nan($element) and not is_infinite($element)) { }
82 4736 elsif (is_complex($element)) { }
166 0 3757 unless defined $value
176 2 343 if (is_na($element)) { }
24 319 elsif (is_character($element)) { }
5 314 elsif (is_complex($element)) { }
308 6 elsif (is_double($element)) { }
0 6 elsif (is_integer($element)) { }
6 0 elsif (is_logical($element)) { }
187 4 1 if $im >= 0
194 303 5 if (defined $element->value) { }
2 3 elsif ($flag eq 'nan') { }
2 1 elsif ($flag eq 'inf') { }
1 0 elsif ($flag eq '-inf') { }
211 3 3 $element->value ? :
221 1 15 if (is_na($element1)) { }
0 15 elsif (is_character($element1)) { }
1 14 elsif (is_complex($element1)) { }
12 2 elsif (is_double($element1)) { }
2 0 elsif (is_integer($element1) or is_logical($element1)) { }
233 7 5 if (defined $element1->value) { }
1 4 elsif ($flag eq 'nan') { }
3 1 elsif ($flag eq 'inf') { }
1 0 elsif ($flag eq '-inf') { }
257 1 4144 if (is_na($element1)) { }
0 4144 elsif (is_character($element1) or is_complex($element1)) { }
6 4138 elsif (is_double($element1)) { }
4138 0 elsif (is_integer($element1) or is_logical($element1)) { }
265 5 1 if (defined $element1->value) { }
269 0 1 if (is_infinite($element1)) { }
289 0 24 if is_na($element1) or is_na($element2)
291 1 23 if (is_character($element1)) { }
3 20 elsif (is_complex($element1)) { }
18 2 elsif (is_double($element1)) { }
2 0 elsif (is_integer($element1)) { }
0 0 elsif (is_logical($element1)) { }
301 0 18 if is_nan($element1) or is_nan($element2)
302 18 0 if (defined $element1->value) { }
0 0 elsif (is_positive_infinite($element1)) { }
0 0 elsif (is_negative_infinite($element1)) { }
303 18 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
314 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
325 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
350 0 18 if is_na($element1) or is_na($element2)
352 1 17 if (is_character($element1)) { }
1 16 elsif (is_complex($element1)) { }
16 0 elsif (is_double($element1)) { }
0 0 elsif (is_integer($element1)) { }
0 0 elsif (is_logical($element1)) { }
362 0 16 if is_nan($element1) or is_nan($element2)
363 16 0 if (defined $element1->value) { }
0 0 elsif (is_positive_infinite($element1)) { }
0 0 elsif (is_negative_infinite($element1)) { }
364 16 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
375 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
386 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
411 0 9 if is_na($element1) or is_na($element2)
413 1 8 if (is_character($element1)) { }
2 6 elsif (is_complex($element1)) { }
6 0 elsif (is_double($element1)) { }
0 0 elsif (is_integer($element1)) { }
0 0 elsif (is_logical($element1)) { }
423 0 6 if is_nan($element1) or is_nan($element2)
424 6 0 if (defined $element1->value) { }
0 0 elsif (is_positive_infinite($element1)) { }
0 0 elsif (is_negative_infinite($element1)) { }
425 6 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
429 0 0 if ($element1->value == 0) { }
0 0 elsif ($element1->value > 0) { }
0 0 elsif ($element1->value < 0) { }
440 0 0 if ($element1->value == 0) { }
0 0 elsif ($element1->value > 0) { }
0 0 elsif ($element1->value < 0) { }
452 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
453 0 0 if ($element2->value == 0) { }
0 0 elsif ($element2->value > 0) { }
0 0 elsif ($element2->value < 0) { }
471 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
472 0 0 if ($element2->value == 0) { }
0 0 elsif ($element2->value > 0) { }
0 0 elsif ($element2->value < 0) { }
504 0 13 if is_na($element1) or is_na($element2)
506 1 12 if (is_character($element1)) { }
1 11 elsif (is_complex($element1)) { }
11 0 elsif (is_double($element1)) { }
0 0 elsif (is_integer($element1)) { }
0 0 elsif (is_logical($element1)) { }
518 0 11 if is_nan($element1) or is_nan($element2)
519 11 0 if (defined $element1->value) { }
0 0 elsif (is_positive_infinite($element1)) { }
0 0 elsif (is_negative_infinite($element1)) { }
520 0 11 if ($element1->value == 0) { }
10 1 elsif ($element1->value > 0) { }
1 0 elsif ($element1->value < 0) { }
521 0 0 if (defined $element2) { }
0 0 elsif (is_infinite($element2)) { }
522 0 0 if ($element2->value == 0) { }
534 10 0 if (defined $element2) { }
0 0 elsif (is_infinite($element2)) { }
535 0 10 if ($element2->value == 0) { }
547 1 0 if (defined $element2) { }
0 0 elsif (is_infinite($element2)) { }
548 0 1 if ($element2->value == 0) { }
561 0 0 if (defined $element2) { }
0 0 elsif (is_infinite($element2)) { }
562 0 0 if ($element2->value >= 0) { }
0 0 elsif ($element2->value < 0) { }
574 0 0 if (defined $element2) { }
0 0 elsif (is_infinite($element2)) { }
575 0 0 if ($element2->value >= 0) { }
0 0 elsif ($element2->value < 0) { }
588 0 0 if ($element1->value == 0) { }
0 0 elsif ($element1->value > 0) { }
0 0 elsif ($element1->value < 0) { }
589 0 0 if ($element2->value == 0) { }
597 0 0 if ($element2->value == 0) { }
605 0 0 if ($element2->value == 0) { }
614 0 0 if ($element1->value == 0) { }
0 0 elsif ($element1->value == 1) { }
615 0 0 if ($element2->value == 0) { }
0 0 elsif ($element2->value == 1) { }
623 0 0 if ($element2->value == 0) { }
0 0 elsif ($element2->value == 1) { }
639 0 13 if is_na($element1) or is_na($element2)
641 1 12 if (is_character($element1)) { }
1 11 elsif (is_complex($element1)) { }
11 0 elsif (is_double($element1)) { }
0 0 elsif (is_integer($element1)) { }
0 0 elsif (is_logical($element1)) { }
655 0 11 if is_nan($element1) or is_nan($element2)
656 11 0 if (defined $element1->value) { }
0 0 elsif (is_positive_infinite($element1)) { }
0 0 elsif (is_negative_infinite($element1)) { }
657 0 11 if ($element1->value == 0) { }
8 3 elsif ($element1->value > 0) { }
3 0 elsif ($element1->value < 0) { }
658 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
659 0 0 if ($element2->value == 0) { }
0 0 elsif ($element2->value > 0) { }
0 0 elsif ($element2->value < 0) { }
677 8 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
678 0 8 if ($element2->value == 0) { }
686 0 0 if ($element1->value < 1) { }
0 0 elsif ($element1->value == 1) { }
0 0 elsif ($element1->value > 1) { }
697 0 0 if ($element1->value < 1) { }
0 0 elsif ($element1->value == 1) { }
0 0 elsif ($element1->value > 1) { }
709 3 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
710 0 3 if ($element2->value == 0) { }
718 0 0 if ($element1->value > -1) { }
0 0 elsif ($element1->value == -1) { }
0 0 elsif ($element1->value < -1) { }
729 0 0 if ($element1->value > -1) { }
0 0 elsif ($element1->value == -1) { }
0 0 elsif ($element1->value < -1) { }
742 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
743 0 0 if ($element2->value == 0) { }
0 0 elsif ($element2->value > 0) { }
0 0 elsif ($element2->value < 0) { }
761 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
762 0 0 if ($element2->value == 0) { }
0 0 elsif ($element2->value > 0) { }
0 0 elsif ($element2->value < 0) { }
781 0 0 if ($element1->value == 0) { }
0 0 elsif ($element1->value > 0) { }
0 0 elsif ($element1->value < 0) { }
782 0 0 if ($element2->value == 0) { }
0 0 elsif ($element2->value > 0) { }
0 0 elsif ($element2->value < 0) { }
793 0 0 if ($element2->value == 0) { }
801 0 0 if ($element2->value == 0) { }
810 0 0 if ($element1->value == 0) { }
0 0 elsif ($element1->value == 1) { }
811 0 0 if ($element2->value == 0) { }
0 0 elsif ($element2->value == 1) { }
819 0 0 if ($element2->value == 0) { }
0 0 elsif ($element2->value == 1) { }
835 0 7 if is_na($element1) or is_na($element2)
837 1 6 if (is_character($element1)) { }
0 6 elsif (is_complex($element1)) { }
6 0 elsif (is_double($element1)) { }
0 0 elsif (is_integer($element1)) { }
0 0 elsif (is_logical($element1)) { }
844 0 6 if is_nan($element1) or is_nan($element2) or is_infinite($element1) or is_infinite($element2)
846 0 6 if ($element2->value == 0) { }
855 0 0 if ($element2->value == 0) { }
863 0 0 if ($element2->value == 0) { }
878 2 0 if (is_complex($value)) { }
889 1 0 if (is_complex($element)) { }
902 0 13 if is_na($element1) or is_na($element2)
904 0 13 if (is_character($element1)) { }
1 12 elsif (is_complex($element1)) { }
12 0 elsif (is_double($element1)) { }
0 0 elsif (is_integer($element1)) { }
0 0 elsif (is_logical($element1)) { }
905 0 0 $element1->value gt $element2->value ? :
911 0 12 if is_nan($element1) or is_nan($element2)
912 12 0 if (defined $element1->value) { }
0 0 elsif (is_positive_infinite($element1)) { }
0 0 elsif (is_negative_infinite($element1)) { }
913 12 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
914 4 8 $element1->value > $element2->value ? :
924 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
935 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
947 0 0 $element1->value > $element2->value ? :
950 0 0 $element1->value > $element2->value ? :
960 0 13 if is_na($element1) or is_na($element2)
962 0 13 if (is_character($element1)) { }
1 12 elsif (is_complex($element1)) { }
12 0 elsif (is_double($element1)) { }
0 0 elsif (is_integer($element1)) { }
0 0 elsif (is_logical($element1)) { }
963 0 0 $element1->value ge $element2->value ? :
969 0 12 if is_nan($element1) or is_nan($element2)
970 12 0 if (defined $element1->value) { }
0 0 elsif (is_positive_infinite($element1)) { }
0 0 elsif (is_negative_infinite($element1)) { }
971 12 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
972 8 4 $element1->value >= $element2->value ? :
982 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
993 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
1005 0 0 $element1->value >= $element2->value ? :
1008 0 0 $element1->value >= $element2->value ? :
1018 0 13 if is_na($element1) or is_na($element2)
1020 0 13 if (is_character($element1)) { }
1 12 elsif (is_complex($element1)) { }
12 0 elsif (is_double($element1)) { }
0 0 elsif (is_integer($element1)) { }
0 0 elsif (is_logical($element1)) { }
1021 0 0 $element1->value lt $element2->value ? :
1027 0 12 if is_nan($element1) or is_nan($element2)
1028 12 0 if (defined $element1->value) { }
0 0 elsif (is_positive_infinite($element1)) { }
0 0 elsif (is_negative_infinite($element1)) { }
1029 12 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
1030 4 8 $element1->value < $element2->value ? :
1040 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
1051 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
1063 0 0 $element1->value < $element2->value ? :
1066 0 0 $element1->value < $element2->value ? :
1076 0 13 if is_na($element1) or is_na($element2)
1078 0 13 if (is_character($element1)) { }
1 12 elsif (is_complex($element1)) { }
12 0 elsif (is_double($element1)) { }
0 0 elsif (is_integer($element1)) { }
0 0 elsif (is_logical($element1)) { }
1079 0 0 $element1->value le $element2->value ? :
1085 0 12 if is_nan($element1) or is_nan($element2)
1086 12 0 if (defined $element1->value) { }
0 0 elsif (is_positive_infinite($element1)) { }
0 0 elsif (is_negative_infinite($element1)) { }
1087 12 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
1088 8 4 $element1->value <= $element2->value ? :
1098 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
1109 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
1121 0 0 $element1->value <= $element2->value ? :
1124 0 0 $element1->value <= $element2->value ? :
1134 0 10 if is_na($element1) or is_na($element2)
1136 0 10 if (is_character($element1)) { }
2 8 elsif (is_complex($element1)) { }
8 0 elsif (is_double($element1)) { }
0 0 elsif (is_integer($element1)) { }
0 0 elsif (is_logical($element1)) { }
1137 0 0 $element1->value eq $element2->value ? :
1140 1 1 $element1->re->value == $element2->re->value && $element1->im->value == $element2->im->value ? :
1143 0 8 if is_nan($element1) or is_nan($element2)
1144 8 0 if (defined $element1->value) { }
0 0 elsif (is_positive_infinite($element1)) { }
0 0 elsif (is_negative_infinite($element1)) { }
1145 8 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
1146 4 4 $element1->value == $element2->value ? :
1156 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
1167 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
1179 0 0 $element1->value == $element2->value ? :
1182 0 0 $element1->value == $element2->value ? :
1192 0 10 if is_na($element1) or is_na($element2)
1194 0 10 if (is_character($element1)) { }
2 8 elsif (is_complex($element1)) { }
8 0 elsif (is_double($element1)) { }
0 0 elsif (is_integer($element1)) { }
0 0 elsif (is_logical($element1)) { }
1195 0 0 $element1->value ne $element2->value ? :
1198 1 1 !($element1->re->value == $element2->re->value && $element1->im->value == $element2->im->value) ? :
1201 0 8 if is_nan($element1) or is_nan($element2)
1202 8 0 if (defined $element1->value) { }
0 0 elsif (is_positive_infinite($element1)) { }
0 0 elsif (is_negative_infinite($element1)) { }
1203 8 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
1204 4 4 $element1->value != $element2->value ? :
1214 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
1225 0 0 if (defined $element2) { }
0 0 elsif (is_positive_infinite($element2)) { }
0 0 elsif (is_negative_infinite($element2)) { }
1237 0 0 $element1->value != $element2->value ? :
1240 0 0 $element1->value != $element2->value ? :