Condition Coverage

blib/lib/Spreadsheet/XLSX/Reader/LibXML/ParseExcelFormatStrings.pm
Criterion Covered Total %
condition 109 175 62.2


and 3 conditions

line !l l&&!r l&&r condition
201 0 0 195 defined $format_string and my(@result) = $format_string =~ /^( # Collect any formatting stuff first (AM\/PM| # Date 12 hr flag A\/P| # Another date 12 hr flag \[hh?\]| # Elapsed hours \[mm\]| # Elapsed minutes \[ss\]| # Elapsed seconds [dmyhms]+)| # DateTime chunks ([0-9#\?]+[,\-\_]?[#0\?]*,*| # Number string \.| # Split integers from decimals [Ee][+\-]| # Exponential notiation %)| # Percentage (\@) # Text input )?( # Finish collecting format actions (\"[^\"]*\")| # Anything in quotes just passes through (\[[^\]]*\])| # Anything in brackets needs modification [\(\)\$\-\+\/\:\!\^\&\'\~\{\}\<\>\=\s]| # All the pass through characters \,\s # comma space for verbal separation )?(.*)/x
229 87 2 2 $fixed_value =~ /\"\-\"/ and $format_string
250 48 0 111 $action_type and $current_action
48 91 20 $action_type and $current_action and $current_action ne $action_type
262 1 0 1 $pre_action =~ /^\.$/ and $format_string =~ /^0+/
0 0 1 $pre_action =~ /^0+$/ and $deconstructed_list[-1][0] =~ /^\.$/
320 0 64 6 $action_type && $action_type eq 'TEXT'
321 0 68 2 $action_type and $action_type eq 'DATESTRING'
334 33 2 13 $is_date and not $date_text
400 0 0 6 not $found_string and defined $piece->[0]
442 1 16 1 not $sub_seconds and $piece->[0] =~ /[\.]/
486 4 5 5 $cldr_string and $cldr_string =~ /:'?$/
1 6 2 $piece->[1] and $piece->[1] eq ':'
522 41 1 1 $sub_seconds and $sub_seconds ne '1'
529 25 0 0 $sub_seconds and $sub_seconds ne '1'
602 72 0 6 $sub_seconds and $sub_seconds ne '1'
685 12 0 1 $last_sub_seconds and $last_sub_seconds ne '1'
766 43 0 4 $type_filter->name eq 'ZeroOrUndef' and not $list_ref->[-1][0]
43 0 4 $type_filter->name eq 'ZeroOrUndef' and not $list_ref->[-1][0] and $list_ref->[-1][1] eq '"-"'
789 0 0 0 $2 && $2 ne ','
809 43 0 0 $leading_zeros and length $leading_zeros
819 0 0 0 $leading_zeros and length $leading_zeros
824 11 6 10 $piece->[1] and $piece->[1] eq '/'
828 1 0 16 $trailinq_zeros and length $trailinq_zeros
832 12 0 1 $leading_zeros and length $leading_zeros
887 0 14 14 not $found_integer and defined $piece->[0]
925 50 0 6 $built_ref->{'sign'} and $return
989 50 0 6 $built_ref->{'sign'} and $return
1066 12 0 2 $built_ref->{'sign'} and $return
1119 0 0 0 $adjusted_input =~ /^(\-)?((\d{1,3})?(\.\d+)?)[Ee](\-)?(\d+)$/ and $2
0 0 0 $adjusted_input =~ /^(\-)?((\d{1,3})?(\.\d+)?)[Ee](\-)?(\d+)$/ and $2 and $6
0 0 0 $adjusted_input =~ /^(\-)?((\d{1,3})?(\.\d+)?)[Ee](\-)?(\d+)$/ and $2 and $6 and $6 < 309
1151 12 0 12 $built_ref->{'sign'} and $return
1207 198 32 0 not $return and $built_ref->{'initial_value'}
1210 120 15 95 $built_ref->{'sign'} and $return
1241 344 0 36 $value_definitions->{'negative_type'} and $value_definitions->{'initial_value'} < 0
1255 0 112 0 $value_definitions->{'initial_value'} and $value_definitions->{'divide_by_thousands'}
1308 0 6 18 defined $value_definitions->{'integer'}{'value'} and sprintf('%.0f', $value_definitions->{'integer'}{'value'}) =~ /([1-9])/
1528 0 24 212 $max_iterations > 0 and $decimal >= 1e-05
1534 124 20 60 $decimal < 1e-05 and $decimal > 1e-10
1551 4 68 12 $denominator and length $denominator > $max_digits

or 2 conditions

line l !l condition
1453 222 8 $value_definitions->{'fraction'}{'value'} //= 0
1499 106 0 $comma //= ','

or 3 conditions

line l !l&&r !l&&!r condition
129 0 0 0 $target_name // "Excel__$position"
255 6 6 0 $action_type eq 'INTEGER' or $action_type eq 'DECIMAL'
262 1 0 1 $pre_action =~ /^\.$/ and $format_string =~ /^0+/ or $pre_action =~ /^0+$/ and $deconstructed_list[-1][0] =~ /^\.$/
350 0 48 0 $coercion_name // $action_type . '_' . $coercion_index++
486 5 0 9 $cldr_string and $cldr_string =~ /:'?$/ or $piece->[1] and $piece->[1] eq ':'
807 10 17 13 $number_type eq 'INTEGER' or $number_type eq 'DECIMAL'
3 10 0 $number_type eq 'SCIENTIFIC' or $number_type eq 'FRACTION'
908 6 0 56 not defined $adjusted_input or $adjusted_input eq ''
971 6 0 56 not defined $adjusted_input or $adjusted_input eq ''
1040 2 0 14 not defined $adjusted_input or $adjusted_input eq ''
1119 3 0 24 not defined $adjusted_input or $adjusted_input eq ''
24 0 0 $adjusted_input =~ /^\-?\d*(\.\d+)?$/ or $adjusted_input =~ /^(\-)?((\d{1,3})?(\.\d+)?)[Ee](\-)?(\d+)$/ and $2 and $6 and $6 < 309
1184 10 0 230 not defined $adjusted_input or $adjusted_input eq ''
1534 8 0 204 $integer > 999 or $decimal < 1e-05 and $decimal > 1e-10
1551 8 0 84 not $numerator or $denominator and length $denominator > $max_digits
1589 6 0 78 not $denominator or $denominator == 1