Branch Coverage

blib/lib/Spreadsheet/ParseExcel/Utility.pm
Criterion Covered Total %
branch 279 380 73.4


line true false branch
75 0 782 unless $number =~ /$qrNUMBER/
78 250 532 if uc $format_str eq 'GENERAL'
82 0 782 if ($format_str =~ /^\[([<>=][^\]]+)\](.*)$/)
102 102 6563 if ($double_quote or $single_quote)
104 29 73 if $char eq '"'
109 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 ')') { }
130 60 6325 if $char =~ /[DMYHS]/
142 754 28 if (@formats == 1) { }
18 10 elsif (@formats == 2) { }
3 7 elsif (@formats == 3) { }
146 8 10 if ($number < 0) { }
154 1 2 if ($number == 0) { }
1 1 elsif ($number < 0) { }
169 0 782 if ($conditional)
172 0 0 eval "$number $conditional" ? :
184 4 778 if ($format =~ s/^(\[[A-Za-z]{3,}(\d{1,2})?\])//)
190 3 779 if ($format =~ s/^(\[\$?-F?\d+\])//)
196 3 779 if ($format =~ s/(\[\$([^-]+)(-\d+)?\])/$2/s)
230 2840 1345 unless ($seen_dot || $char =~ /[#0\+\-\.\?eE\,\%]/ and $char =~ /[#0\+\-\?eE\,\%]/)
234 111 2729 if ($token_start != -1)
245 44 4141 if ($char eq '"') { }
0 4141 elsif ($char eq '!') { }
44 4097 elsif ($char eq '\\') { }
246 22 22 $double_quote ? :
256 44 0 if ($single_quote != 1)
263 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 '*') { }
268 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") { }
294 118 1236 unless $format_mode
295 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#]$/) { }
296 2 1010 if (substr($format, $pos) =~ /^([#0]+[\.]?[0#]*[eE][\+\-][0#]+)/) { }
304 438 572 if ($token_start == -1)
313 0 2 if ($token_start != -1)
328 2 6 if (substr($format, $pos, 1) eq '/') { }
6 0 elsif (substr($format, $pos, 1) eq '?') { }
336 0 0 if ($is_fraction and substr($format, $pos, 1) =~ /[0-9]/) { }
360 0 0 if (substr($format, $pos) =~ /([eE][\+\-][0#]+)/)
367 38 302 if ($token_start != -1)
375 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 ')') { }
404 400 1015 unless $format_mode
405 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') { }
443 221 813 if (substr($format, $pos, 2) eq 'mm' and @placeholders and $placeholders[-1][0] eq 'h' || $placeholders[-1][0] eq 'hh') { }
458 223 811 if (substr($format, $pos, 2) eq 'ss' and @placeholders > 1)
461 223 0 if ($placeholders[-2][0] eq 'm' or $placeholders[-2][0] eq 'mm')
476 0 89 if (substr($format, $pos, 1) eq 'm' and @placeholders and $placeholders[-1][0] eq 'h' || $placeholders[-1][0] eq 'hh') { }
491 0 89 if (substr($format, $pos, 1) eq 's' and @placeholders > 1)
494 0 0 if ($placeholders[-2][0] eq 'm' or $placeholders[-2][0] eq 'mm')
506 10 0 unless $format_mode
511 3 0 unless $format_mode
526 7 4090 if $pos == $start_pos
536 289 493 if ($token_start != -1)
548 413 369 if ($format_mode eq 'date' and $number =~ /$qrNUMBER/) { }
118 251 elsif ($format_mode eq 'number' and $number =~ /$qrNUMBER/) { }
556 3 410 if $is_1904
558 4 409 if ($number < $min_date or $number >= $max_date)
590 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 ',') { }
593 230 0 if ($$placeholder[0] eq 'mm') { }
658 4 201 if ($is_12_hour) { }
660 4 0 if $hour % 12 == 0
670 5 11 if ($is_12_hour) { }
672 5 0 if $hour % 12 == 0
692 3 6 $hour >= 12 ? :
697 0 0 $hour >= 12 ? :
751 118 0 if (@placeholders)
772 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 '?') { }
781 200 115 if $is_decimal
785 8 93 if $is_decimal
789 0 6 if $is_decimal
793 9 109 if $is_percent
795 2 116 $is_currency ? :
797 2 116 if ($is_fraction) { }
801 92 24 if ($is_decimal) { }
803 92 0 if (defined $after_decimal) { }
813 13 79 if ($data =~ /^${number_result}5/)
824 29 89 if $comma_count > 0
833 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 ')') { }
849 0 0 $number == 0 ? :
2 0 $number > 0 ? :
855 0 0 $number == 0 ? :
0 0 $number > 0 ? :
886 265 0 if ($number_length > 0) { }
887 105 160 if ($i <= 0) { }
894 35 125 if ($decimal_pos >= 0) { }
898 0 35 $number_length <= $real_part_length ? :
904 4 121 $number_length <= $real_part_length ? :
923 9 109 $number_length > 0 ? :
937 251 0 if ($$placeholder[0] eq '@') { }
947 0 251 unless $is_text
960 0 778 if ($want_subformats) { }
974 29 0 if ($sNum =~ /^([^\d]*)(\d\d\d\d+)(\.*.*)$/) { }
996 0 2 if ($iFlg) { }
998 0 0 if $iShou == 0
1008 0 2 if ($sFmt =~ m[/(\d+)$]) { }
1023 8 10 if ($iCmp < $iSWk)
1026 2 6 if $iSWk == 0
1041 0 2 if $iKeta <= 0
1044 0 2 $iData == 0 ? :
1045 0 2 $iLog10 - int($iLog10 / $iKeta) < 0 ? :
1059 0 393065 if $iYear == 1900
1060 95355 297710 $iYear % 4 == 0 && ($iYear % 100 || $iYear % 400 == 0) ? :
1084 0 101 if defined $iMSec
1090 0 101 if ($flg1904) { }
1102 95335 297649 LeapYear($iY) ? :
1105 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) { }
1119 20 61 LeapYear($iYear) ? :
1143 2 505 if ($flg1904) { }
1157 200795 626480 $iYear % 4 == 0 && ($iYear % 100 || $iYear % 400 == 0) ? :
1165 166 2405 if $iMon == 2 and $iYear % 4 == 0
1167 507 2064 if $iDt <= $iMD
1174 1 506 if ($iTime >= 1)
1177 0 1 $iwDay == 6 ? :
1178 1 0 if ($iDay == $iMD) { }
1180 1 0 if ($iMon == 12) { }
1226 230 256 if $incr
1275 0 0 if ($1 and $2)
1278 0 0 if ($ret[0] < 0)
1304 0 0 if ($2)
1312 0 0 unless ($1 and $2)
1319 0 0 unless (@start)
1323 0 0 unless (@end)
1328 0 0 if ($start[1] > $end[1])
1334 0 0 if ($start[0] > $end[0])
1351 0 0 if ($start[1] < $$oWkS{'MinCol'})
1358 0 0 if ($end[1] > $$oWkS{'MaxCol'})
1365 0 0 if ($start[0] < $$oWkS{'MinRow'})
1373 0 0 if ($end[0] > $$oWkS{'MaxRow'})
1391 0 0 if (not $rotate) { }
1397 0 0 if (defined $cell) { }
1415 0 0 if (defined $cell) { }