Branch Coverage

blib/lib/Spreadsheet/ParseExcel/Utility.pm
Criterion Covered Total %
branch 279 406 68.7


line true false branch
75 0 782 unless $number =~ /$qrNUMBER/
78 250 532 if uc $format_str eq "GENERAL"
83 0 782 if ($format_str =~ /^\[([<>=]+)([^\]]+)\](.*)$/)
104 102 6563 if ($double_quote or $single_quote)
106 29 73 if $char eq "\""
111 45 6518 if ($char eq ';') { }
29 6489 elsif ($char eq '"') { }
0 6489 elsif ($char eq '!') { }
44 6445 elsif ($char eq '\\') { }
70 6375 elsif ($char eq '(') { }
63 6312 elsif ($char eq ')') { }
132 60 6325 if $char =~ /[DMYHS]/
144 754 28 if (@formats == 1) { }
18 10 elsif (@formats == 2) { }
3 7 elsif (@formats == 3) { }
148 8 10 if ($number < 0) { }
156 1 2 if ($number == 0) { }
1 1 elsif ($number < 0) { }
171 0 782 if ($conditional_op)
172 0 0 if ($conditional_op eq '>') { }
0 0 elsif ($conditional_op eq '>=') { }
0 0 elsif ($conditional_op eq '<') { }
0 0 elsif ($conditional_op eq '<=') { }
0 0 elsif ($conditional_op eq '=') { }
0 0 elsif ($conditional_op eq '==') { }
0 0 elsif ($conditional_op eq '<>') { }
173 0 0 $number > $conditional_value ? :
175 0 0 $number >= $conditional_value ? :
177 0 0 $number < $conditional_value ? :
179 0 0 $number <= $conditional_value ? :
181 0 0 $number == $conditional_value ? :
183 0 0 $number == $conditional_value ? :
185 0 0 $number != $conditional_value ? :
197 4 778 if ($format =~ s/^(\[[A-Za-z]{3,}(\d{1,2})?\])//)
203 3 779 if ($format =~ s/^(\[\$?-F?\d+\])//)
209 3 779 if ($format =~ s/(\[\$([^-]+)(-\d+)?\])/$2/s)
243 2840 1345 unless ($seen_dot || $char =~ /[#0\+\-\.\?eE\,\%]/ and $char =~ /[#0\+\-\?eE\,\%]/)
247 111 2729 if ($token_start != -1)
258 44 4141 if ($char eq '"') { }
0 4141 elsif ($char eq '!') { }
44 4097 elsif ($char eq '\\') { }
259 22 22 $double_quote ? :
269 44 0 if ($single_quote != 1)
276 75 4022 if (defined $double_quote and $double_quote or defined $single_quote and $single_quote or $seen_dot and $char eq '.') { }
1354 2668 elsif ($char =~ /[#0\+\.\?eE\,\%]/ or $format_mode ne 'date' and $char eq '-' || $char eq '(' || $char eq ')') { }
1415 1253 elsif ($char =~ /[ymdhsapg]/i) { }
10 1243 elsif (substr($format, $pos, 3) eq '[h]') { }
3 1240 elsif (substr($format, $pos, 4) eq '[mm]') { }
251 989 elsif ($char eq '@') { }
7 982 elsif ($char eq '*') { }
281 0 75 if ($format_mode ne 'date' and substr($format, $pos, 2) eq "\201\242" || substr($format, $pos, 2) eq "\201\243" || substr($format, $pos, 2) eq "\242\244" || substr($format, $pos, 2) eq "\242\245") { }
307 118 1236 unless $format_mode
308 1012 342 if (substr($format, $pos, 1) =~ /[#0]/) { }
2 340 elsif (substr($format, $pos, 1) eq '?') { }
0 340 elsif (substr($format, $pos, 3) =~ /^[eE][\+\-][0#]$/) { }
309 2 1010 if (substr($format, $pos) =~ /^([#0]+[\.]?[0#]*[eE][\+\-][0#]+)/) { }
317 438 572 if ($token_start == -1)
326 0 2 if ($token_start != -1)
341 2 6 if (substr($format, $pos, 1) eq '/') { }
6 0 elsif (substr($format, $pos, 1) eq '?') { }
349 0 0 if ($is_fraction and substr($format, $pos, 1) =~ /[0-9]/) { }
373 0 0 if (substr($format, $pos) =~ /([eE][\+\-][0#]+)/)
380 38 302 if ($token_start != -1)
388 2 338 if (substr($format, $pos, 1) =~ /[\+\-]/) { }
296 42 elsif (substr($format, $pos, 1) eq '.') { }
33 9 elsif (substr($format, $pos, 1) eq ',') { }
9 0 elsif (substr($format, $pos, 1) eq '%') { }
0 0 elsif (substr($format, $pos, 1) eq '(' or substr($format, $pos, 1) eq ')') { }
417 400 1015 unless $format_mode
418 9 1406 if (substr($format, $pos, 5) =~ m[am/pm]i) { }
0 1406 elsif (substr($format, $pos, 3) =~ m[a/p]i) { }
12 1394 elsif (substr($format, $pos, 5) eq 'mmmmm') { }
223 1171 elsif (substr($format, $pos, 4) eq 'mmmm' or substr($format, $pos, 4) eq 'dddd' or substr($format, $pos, 4) eq 'yyyy' or substr($format, $pos, 4) eq 'ggge') { }
48 1123 elsif (substr($format, $pos, 3) eq 'ddd' or substr($format, $pos, 3) eq 'mmm' or substr($format, $pos, 3) eq 'yyy') { }
1034 89 elsif (substr($format, $pos, 2) eq 'yy' or substr($format, $pos, 2) eq 'mm' or substr($format, $pos, 2) eq 'dd' or substr($format, $pos, 2) eq 'hh' or substr($format, $pos, 2) eq 'ss' or substr($format, $pos, 2) eq 'ge') { }
89 0 elsif (substr($format, $pos, 1) eq 'm' or substr($format, $pos, 1) eq 'd' or substr($format, $pos, 1) eq 'h' or substr($format, $pos, 1) eq 's') { }
456 221 813 if (substr($format, $pos, 2) eq 'mm' and @placeholders and $placeholders[-1][0] eq 'h' || $placeholders[-1][0] eq 'hh') { }
471 223 811 if (substr($format, $pos, 2) eq "ss" and @placeholders > 1)
474 223 0 if ($placeholders[-2][0] eq "m" or $placeholders[-2][0] eq "mm")
489 0 89 if (substr($format, $pos, 1) eq 'm' and @placeholders and $placeholders[-1][0] eq 'h' || $placeholders[-1][0] eq 'hh') { }
504 0 89 if (substr($format, $pos, 1) eq "s" and @placeholders > 1)
507 0 0 if ($placeholders[-2][0] eq "m" or $placeholders[-2][0] eq "mm")
519 10 0 unless $format_mode
524 3 0 unless $format_mode
539 7 4090 if $pos == $start_pos
549 289 493 if ($token_start != -1)
561 413 369 if ($format_mode eq 'date' and $number =~ /$qrNUMBER/) { }
118 251 elsif ($format_mode eq 'number' and $number =~ /$qrNUMBER/) { }
569 3 410 if $is_1904
571 4 409 if ($number < $min_date or $number >= $max_date)
603 230 1598 if ($placeholder->[-1] eq 'minutes') { }
192 1406 elsif ($placeholder->[0] eq 'yyyy') { }
12 1394 elsif ($placeholder->[0] eq 'yy') { }
12 1382 elsif ($placeholder->[0] eq 'mmmmm') { }
14 1368 elsif ($placeholder->[0] eq 'mmmm') { }
34 1334 elsif ($placeholder->[0] eq 'mmm') { }
174 1160 elsif ($placeholder->[0] eq 'mm') { }
28 1132 elsif ($placeholder->[0] eq 'm') { }
9 1123 elsif ($placeholder->[0] eq 'dddd') { }
14 1109 elsif ($placeholder->[0] eq 'ddd') { }
178 931 elsif ($placeholder->[0] eq 'dd') { }
45 886 elsif ($placeholder->[0] eq 'd') { }
205 681 elsif ($placeholder->[0] eq 'hh') { }
16 665 elsif ($placeholder->[0] eq 'h') { }
223 442 elsif ($placeholder->[0] eq 'ss') { }
0 442 elsif ($placeholder->[0] eq 's') { }
9 433 elsif ($placeholder->[0] eq 'am/pm') { }
0 433 elsif ($placeholder->[0] eq 'a/p') { }
206 227 elsif ($placeholder->[0] eq '.') { }
202 25 elsif ($placeholder->[0] =~ /(^0+$)/) { }
10 15 elsif ($placeholder->[0] eq '[h]') { }
3 12 elsif ($placeholder->[0] eq '[mm]') { }
4 8 elsif ($placeholder->[0] eq 'ge') { }
4 4 elsif ($placeholder->[0] eq 'ggge') { }
0 4 elsif ($placeholder->[0] eq '@') { }
4 0 elsif ($placeholder->[0] eq ',') { }
606 230 0 if ($placeholder->[0] eq 'mm') { }
671 4 201 if ($is_12_hour) { }
673 4 0 if $hour % 12 == 0
683 5 11 if ($is_12_hour) { }
685 5 0 if $hour % 12 == 0
705 3 6 $hour >= 12 ? :
710 0 0 $hour >= 12 ? :
764 118 0 if (@placeholders)
785 92 466 if ($token eq '.') { }
2 464 elsif ($token eq 'E' or $token eq 'e') { }
315 149 elsif ($token eq '0') { }
101 48 elsif ($token eq '#') { }
6 42 elsif ($token eq '?') { }
794 200 115 if $is_decimal
798 8 93 if $is_decimal
802 0 6 if $is_decimal
806 9 109 if $is_percent
808 2 116 $is_currency ? :
810 2 116 if ($is_fraction) { }
814 92 24 if ($is_decimal) { }
816 92 0 if (defined $after_decimal) { }
826 13 79 if ($data =~ /^${number_result}5/)
837 29 89 if $comma_count > 0
846 2 366 if ($placeholder->[0] =~ /([#0]*)([\.]?)([0#]*)([eE])([\+\-])([0#]+)/) { }
2 364 elsif ($placeholder->[0] =~ m[/]) { }
90 274 elsif ($placeholder->[0] eq '.') { }
2 272 elsif ($placeholder->[0] eq '+') { }
0 272 elsif ($placeholder->[0] eq '-') { }
0 272 elsif ($placeholder->[0] eq '@') { }
7 265 elsif ($placeholder->[0] eq '*') { }
0 265 elsif ($placeholder->[0] eq "\242\244" or $placeholder->[0] eq "\242\245" or $placeholder->[0] eq "\201\242" or $placeholder->[0] eq "\201\243") { }
0 265 elsif ($placeholder->[0] eq '(' or $placeholder->[0] eq ')') { }
862 0 0 $number == 0 ? :
2 0 $number > 0 ? :
868 0 0 $number == 0 ? :
0 0 $number > 0 ? :
899 265 0 if ($number_length > 0) { }
900 105 160 if ($i <= 0) { }
907 35 125 if ($decimal_pos >= 0) { }
911 0 35 $number_length <= $real_part_length ? :
917 4 121 $number_length <= $real_part_length ? :
936 9 109 $number_length > 0 ? :
950 251 0 if ($placeholder->[0] eq '@') { }
960 0 251 unless $is_text
973 0 778 if ($want_subformats) { }
987 29 0 if ($sNum =~ /^([^\d]*)(\d\d\d\d+)(\.*.*)$/) { }
1009 0 2 if ($iFlg) { }
1011 0 0 if $iShou == 0
1021 0 2 if ($sFmt =~ m[/(\d+)$]) { }
1036 8 10 if ($iCmp < $iSWk)
1039 2 6 if $iSWk == 0
1054 0 2 if $iKeta <= 0
1057 0 2 $iData == 0 ? :
1058 0 2 $iLog10 - int($iLog10 / $iKeta) < 0 ? :
1072 0 393065 if $iYear == 1900
1073 95355 297710 $iYear % 4 == 0 && ($iYear % 100 || $iYear % 400 == 0) ? :
1097 0 101 if defined $iMSec
1103 0 101 if ($flg1904) { }
1115 95335 297649 LeapYear($iY) ? :
1118 312 230 if ($iM == 1 or $iM == 3 or $iM == 5 or $iM == 7 or $iM == 8 or $iM == 10 or $iM == 12) { }
149 81 elsif ($iM == 4 or $iM == 6 or $iM == 9 or $iM == 11) { }
81 0 elsif ($iM == 2) { }
1132 20 61 LeapYear($iYear) ? :
1156 2 505 if ($flg1904) { }
1170 200795 626480 $iYear % 4 == 0 && ($iYear % 100 || $iYear % 400 == 0) ? :
1178 166 2405 if $iMon == 2 and $iYear % 4 == 0
1180 507 2064 if $iDt <= $iMD
1187 1 506 if ($iTime >= 1)
1190 0 1 $iwDay == 6 ? :
1191 1 0 if ($iDay == $iMD) { }
1193 1 0 if ($iMon == 12) { }
1239 230 256 if $incr
1288 0 0 if ($1 and $2)
1291 0 0 if ($ret[0] < 0)
1317 0 0 if ($2)
1325 0 0 unless ($1 and $2)
1332 0 0 unless (@start)
1336 0 0 unless (@end)
1341 0 0 if ($start[1] > $end[1])
1347 0 0 if ($start[0] > $end[0])
1364 0 0 if ($start[1] < $oWkS->{'MinCol'})
1371 0 0 if ($end[1] > $oWkS->{'MaxCol'})
1378 0 0 if ($start[0] < $oWkS->{'MinRow'})
1386 0 0 if ($end[0] > $oWkS->{'MaxRow'})
1404 0 0 if (not $rotate) { }
1410 0 0 if (defined $cell) { }
1428 0 0 if (defined $cell) { }