Condition Coverage

blib/lib/Spreadsheet/XLSX/Reader/LibXML/ParseExcelFormatStrings.pm
Criterion Covered Total %
condition 119 197 60.4


and 3 conditions

line !l l&&!r l&&r condition
209 0 0 198 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
237 89 2 2 $fixed_value =~ /\"\-\"/ and $format_string
258 49 0 113 $action_type and $current_action
49 93 20 $action_type and $current_action and $current_action ne $action_type
270 1 0 1 $pre_action =~ /^\.$/ and $format_string =~ /^0+/
0 0 1 $pre_action =~ /^0+$/ and $deconstructed_list[-1][0] =~ /^\.$/
328 0 65 6 $action_type && $action_type eq 'TEXT'
329 0 69 2 $action_type and $action_type eq 'DATESTRING'
342 33 2 14 $is_date and not $date_text
408 0 0 6 not $found_string and defined $piece->[0]
450 1 18 1 not $sub_seconds and $piece->[0] =~ /[\.]/
494 4 6 5 $cldr_string and $cldr_string =~ /:'?$/
1 7 2 $piece->[1] and $piece->[1] eq ':'
530 44 1 1 $sub_seconds and $sub_seconds ne '1'
537 27 0 0 $sub_seconds and $sub_seconds ne '1'
610 72 0 6 $sub_seconds and $sub_seconds ne '1'
668 0 0 1 defined $1 and defined $2
0 0 1 defined $1 and defined $2 and defined $3
672 1 0 0 defined $bump_year && $year <= $bump_year
0 1 0 defined $drop_year && $year >= $drop_year
681 19 0 4 $self->get_european_first && $dt_eu
731 21 0 1 $this_sub_seconds and $this_sub_seconds ne '1'
812 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 '"-"'
835 0 0 0 $2 && $2 ne ','
855 43 0 0 $leading_zeros and length $leading_zeros
865 0 0 0 $leading_zeros and length $leading_zeros
870 11 6 10 $piece->[1] and $piece->[1] eq '/'
874 1 0 16 $trailinq_zeros and length $trailinq_zeros
878 12 0 1 $leading_zeros and length $leading_zeros
933 0 14 14 not $found_integer and defined $piece->[0]
971 50 0 6 $built_ref->{'sign'} and $return
1035 50 0 6 $built_ref->{'sign'} and $return
1112 12 0 2 $built_ref->{'sign'} and $return
1165 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
1197 12 0 12 $built_ref->{'sign'} and $return
1253 198 32 0 not $return and $built_ref->{'initial_value'}
1256 120 15 95 $built_ref->{'sign'} and $return
1287 344 0 36 $value_definitions->{'negative_type'} and $value_definitions->{'initial_value'} < 0
1301 0 112 0 $value_definitions->{'initial_value'} and $value_definitions->{'divide_by_thousands'}
1354 0 6 18 defined $value_definitions->{'integer'}{'value'} and sprintf('%.0f', $value_definitions->{'integer'}{'value'}) =~ /([1-9])/
1574 0 24 212 $max_iterations > 0 and $decimal >= 1e-05
1580 124 20 60 $decimal < 1e-05 and $decimal > 1e-10
1597 4 68 12 $denominator and length $denominator > $max_digits

or 2 conditions

line l !l condition
675 0 1 $7 // '00'
676 0 1 $7 // '00'
1499 222 8 $value_definitions->{'fraction'}{'value'} //= 0
1545 106 0 $comma //= ','

or 3 conditions

line l !l&&r !l&&!r condition
137 0 0 0 $target_name // "Excel__$position"
263 6 6 0 $action_type eq 'INTEGER' or $action_type eq 'DECIMAL'
270 1 0 1 $pre_action =~ /^\.$/ and $format_string =~ /^0+/ or $pre_action =~ /^0+$/ and $deconstructed_list[-1][0] =~ /^\.$/
358 0 49 0 $coercion_name // $action_type . '_' . $coercion_index++
494 5 0 10 $cldr_string and $cldr_string =~ /:'?$/ or $piece->[1] and $piece->[1] eq ':'
659 22 0 1 $dt_us or $dt_eu
853 10 17 13 $number_type eq 'INTEGER' or $number_type eq 'DECIMAL'
3 10 0 $number_type eq 'SCIENTIFIC' or $number_type eq 'FRACTION'
954 6 0 56 not defined $adjusted_input or $adjusted_input eq ''
1017 6 0 56 not defined $adjusted_input or $adjusted_input eq ''
1086 2 0 14 not defined $adjusted_input or $adjusted_input eq ''
1165 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
1230 10 0 230 not defined $adjusted_input or $adjusted_input eq ''
1580 8 0 204 $integer > 999 or $decimal < 1e-05 and $decimal > 1e-10
1597 8 0 84 not $numerator or $denominator and length $denominator > $max_digits
1635 6 0 78 not $denominator or $denominator == 1