Condition Coverage

blib/lib/Excel/Writer/XLSX/Worksheet.pm
Criterion Covered Total %
condition 578 699 82.6


and 3 conditions

line !l l&&!r l&&r condition
676 28 201 6 $width and $hidden
1316 0 0 9 $row1 == 0 and $col1 == 0
0 7 2 $row1 == 0 and $col1 == 0 and $row2 == $self->{'_xls_rowmax'} - 1
7 1 1 $row1 == 0 and $col1 == 0 and $row2 == $self->{'_xls_rowmax'} - 1 and $col2 == $self->{'_xls_colmax'} - 1
1411 6 13 6 @tokens == 2 and $tokens[0] == 2
13 2 4 @tokens == 5 and $tokens[0] == 2
15 1 3 @tokens == 5 and $tokens[0] == 2 and $tokens[2] == 1
3 0 3 @tokens == 5 and $tokens[0] == 2 and $tokens[2] == 1 and $tokens[3] == 2
1608 2 2 0 $token ne "items" and $token ne "%"
1628 59 0 0 not $operator and $tokens[0]
1638 5 2 0 $operator != 2 and $operator != 5
1667 36 20 3 $operator == 2 and $token =~ /[*?]/
1704 1 38 1 $row_num_1 == 0 and $row_num_2 == $self->{'_xls_rowmax'} - 1
2 36 1 $col_num_1 == 0 and $col_num_2 == $self->{'_xls_colmax'} - 1
1720 37 2 1 $range1 eq $range2 and not $row_col_only
2095 9944 0 0 $self->{'_leading_zeros'} and $token =~ /^0\d+$/
2316 7744 3 2 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
2378 2724 14 280 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
2472 28 4 1 $last eq "format" and $pos > 0
2527 20 0 8 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
2577 62 1 0 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
2630 114 1 0 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
2672 4 0 5 $row1 == $row2 and $col1 == $col2
2688 9 0 0 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
2700 8 0 9 $row == $row1 and $col == $col1
2785 4 0 0 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
2875 53 17 13 defined $args[3] and not ref $args[3]
2933 66 5 4 $url_str and not $external
2969 81 1 0 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
3035 129 0 0 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
3159 427 166 58 $year % 4 == 0 and $year % 100
3179 206 4 423 $date_1904 == 0 and $days > 59
3316 9 15 0 $row_first == $row_last and $col_first == $col_last
3339 22 26 20 $row == $row_first and $col == $col_first
3388 0 7 0 $row_first == $row_last and $col_first == $col_last
3437 0 7 7 $row == $row_first and $col == $col_first
3472 5 63 0 @_ != 5 and @_ != 3
3565 65 2 1 $param->{'validate'} eq "none" and not defined $param->{'input_message'}
67 0 1 $param->{'validate'} eq "none" and not defined $param->{'input_message'} and not defined $param->{'input_title'}
3673 49 17 1 $param->{'input_title'} and length $param->{'input_title'} > 32
3680 62 4 0 $param->{'error_title'} and length $param->{'error_title'} > 32
3687 50 15 1 $param->{'input_message'} and length $param->{'input_message'} > 255
3694 62 3 0 $param->{'error_message'} and length $param->{'error_message'} > 255
3914 79 17 53 defined $param->{'criteria'} and exists $criteria_type{lc $param->{'criteria'}}
3924 1 0 1 defined $param->{'value'} and $param->{'value'} =~ /T/
3937 1 0 1 defined $param->{'minimum'} and $param->{'minimum'} =~ /T/
3950 1 0 1 defined $param->{'maximum'} and $param->{'maximum'} =~ /T/
4042 122 0 27 defined $param->{'format'} and ref $param->{'format'}
4279 5 0 20 $param->{'min_type'} eq "min" and $param->{'min_value'} == 0
4283 4 0 21 $param->{'max_type'} eq "max" and $param->{'max_value'} == 0
4363 4 6 4 $type ne "percent" and $type ne "percentile"
10 2 2 $type ne "percent" and $type ne "percentile" and $type ne "number"
8 2 0 $type ne "percent" and $type ne "percentile" and $type ne "number" and $type ne "formula"
4381 16 7 7 defined $user_props->[$i]{'criteria'} and $user_props->[$i]{'criteria'} eq ">"
4417 0 0 52 @_ and $_[0] =~ /^\D/
4652 74 0 9 defined $user_data->{'format'} and ref $user_data->{'format'}
4778 49 8 1 $type ne "line" and $type ne "column"
57 1 0 $type ne "line" and $type ne "column" and $type ne "win_loss"
4865 57 0 1 $date_range and not $date_range =~ /!/
5237 1006 15545 318 not $ignore_row || $ignore_col and $self->{'_optimization'} == 1
5338 4768 1 8 $x1 < 0 and $col_start > 0
5344 4768 1 4 $y1 < 0 and $row_start > 0
5544 154 5 18 $hidden == 1 and $anchor != 4
5582 49 15 10 $hidden == 1 and $anchor != 4
5764 396 10 0 $chart->{'_combined'} and $chart->{'_combined'}{'_already_inserted'}
6109 0 1 25 $target and not exists $self->{'_drawing_rels'}{$url}
6239 28 17 45 not $used and $id != 0
6375 0 0 12 $shape->{'_start'} and $shape->{'_end'}
6378 0 0 12 $shape->{'_start_side'} and $shape->{'_end_side'}
6448 2 2 1 $smidx < $emidx and $smidy > $emidy
6449 3 1 1 $smidx > $emidx and $smidy < $emidy
6957 1 4 0 @pairs and $pairs[-2] eq "result"
7090 805 0 9 not defined $self->{'_dim_rowmin'} and defined $self->{'_dim_colmin'}
645 21 139 $self->{'_dim_rowmin'} == $self->{'_dim_rowmax'} and $self->{'_dim_colmin'} == $self->{'_dim_colmax'}
7809 9194 1076 0 $self->{'_set_rows'}{$row} and $self->{'_set_rows'}{$row}[1]
7843 294 0 8 $string =~ /^<r>/ and $string =~ m[</r>$]
7867 35 26 18 $value and not $value =~ /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/
8066 17 3 3 $self->{'_fit_page'} and $self->{'_fit_width'} != 1
8070 17 2 4 $self->{'_fit_page'} and $self->{'_fit_height'} != 1
8463 8 8 2 @filters == 1 and @non_blanks == 0
8617 0 1 81 $self->{'_table'} and $self->{'_table'}{$row_num}
1 0 81 $self->{'_table'} and $self->{'_table'}{$row_num} and $self->{'_table'}{$row_num}{$col_num}
8779 7 8 13 $row and $col
8862 7 5 26 $top_row == $row and $left_col == $col
8876 14 14 10 $row and $col
9225 0 0 56 $format->{'_font'} eq "Calibri" and not $format->{'_hyperlink'}
9533 31 0 5 defined $param->{'minimum'} and defined $param->{'maximum'}
9571 2 0 2 defined $param->{'criteria'} and $param->{'criteria'} eq "%"
9673 33 0 4 exists $param->{'icons_only'} and $param->{'icons_only'}
9677 31 0 6 exists $param->{'reverse_icons'} and $param->{'reverse_icons'}

or 2 conditions

line l !l condition
67 10 1408 $_[9] || 0
71 1021 397 $_[13] || 2079
506 6 24 shift() || ''
507 25 5 shift() || {}
657 18 217 $data[4] || 0
737 1 32 $data[4] || 0
828 44 22 shift() || 0
831 41 25 shift() || 0
949 33 1 $_[0] || ''
950 2 32 $_[1] || 0.3
951 25 9 $_[2] || {}
1015 14 1 $_[0] || ''
1016 2 13 $_[1] || 0.3
1017 7 8 $_[2] || {}
1856 3 0 $_[0] || 100
1877 3 0 $_[0] || 100
2030 0 0 $_[0] || 0
2031 0 0 $_[1] || 0
2809 1 0 $_[3] || 0
2948 17 66 $url_str || ''
3103 205 1 $4 || 0
3197 280 147 shift() || 0
3198 53 374 shift() || 0
3199 4 423 shift() || 0
3274 3 3 shift() || 0
4185 0 1 $param->{'min_type'} ||= "min"
4186 0 1 $param->{'max_type'} ||= "max"
4187 0 1 $param->{'min_value'} ||= 0
4188 0 1 $param->{'max_value'} ||= 0
4189 0 1 $param->{'min_color'} ||= "#FF7128"
4190 0 1 $param->{'max_color'} ||= "#FFEF9C"
4204 1 3 $param->{'min_type'} ||= "min"
4205 1 3 $param->{'mid_type'} ||= "percentile"
4206 1 3 $param->{'max_type'} ||= "max"
4207 1 3 $param->{'min_value'} ||= 0
4209 1 3 $param->{'max_value'} ||= 0
4210 1 3 $param->{'min_color'} ||= "#F8696B"
4211 1 3 $param->{'mid_color'} ||= "#FFEB84"
4212 1 3 $param->{'max_color'} ||= "#63BE7B"
4242 4 25 $param->{'min_value'} ||= 0
4243 4 25 $param->{'max_value'} ||= 0
4244 15 14 $param->{'bar_color'} ||= "#638EC6"
4246 2 27 $param->{'bar_only'} ||= 0
4247 1 28 $param->{'bar_no_border'} ||= 0
4248 1 28 $param->{'bar_solid'} ||= 0
4249 2 27 $param->{'bar_direction'} ||= ""
4250 1 28 $param->{'bar_negative_color'} ||= "#FF0000"
4251 1 28 $param->{'bar_negative_border_color'} ||= "#FF0000"
4252 1 28 $param->{'bar_negative_color_same'} ||= 0
4253 1 28 $param->{'bar_negative_border_color_same'} ||= 0
4254 2 27 $param->{'bar_axis_position'} ||= ""
4255 1 28 $param->{'bar_axis_color'} ||= "#000000"
4443 31 21 $_[4] || {}
4635 2 38 $user_data->{'total_value'} || 0
4776 9 49 $param->{'type'} || 'line'
4849 2 56 $param->{'empty_cells'} || ''
4872 38 20 $param->{'style'} || 0
5530 7483 30086 shift() || 0
5574 13538 46989 shift() || 0
5748 0 3 $options->{'x_offset'} || 0
5749 0 3 $options->{'y_offset'} || 0
5750 2 1 $options->{'x_scale'} || 1
5751 2 1 $options->{'y_scale'} || 1
5752 2 1 $options->{'object_position'} || 1
5756 25 378 $_[3] || 0
5757 25 378 $_[4] || 0
5758 1 402 $_[5] || 1
5759 1 402 $_[6] || 1
5760 1 402 $_[7] || 1
5911 0 0 $cell->[3] || 0
5916 0 0 $cell->[4] || 0
5967 7 33 $options->{'x_offset'} || 0
5968 2 38 $options->{'y_offset'} || 0
5969 1 39 $options->{'x_scale'} || 1
5970 1 39 $options->{'y_scale'} || 1
5971 3 37 $options->{'object_position'} || 2
5979 12 74 $_[3] || 0
5980 12 74 $_[4] || 0
5981 5 81 $_[5] || 1
5982 5 81 $_[6] || 1
5983 5 81 $_[7] || 2
6223 28 17 $_[3] || 0
6224 28 17 $_[4] || 0
6230 0 45 $_[7] || 1
6235 73 17 $shape->{'_id'} || 0
7357 190 46 $_[0] || 0
7358 204 32 $_[1] || 0
7361 20 216 $_[4] || 0
7362 1 235 $_[5] || 0
7363 0 236 $_[6] || 0
7563 290 10 shift() || 0
7696 284 4252 shift() || 0
7697 53 4483 shift() || 0
7698 4 4532 shift() || 0
7699 415 4121 shift() || 0
9579 4 0 $param->{'value'} || 10

or 3 conditions

line l !l&&r !l&&!r condition
829 15 30 21 shift() || $row
830 14 30 22 shift() || $col
1241 1 0 5 $_[1] || $_[0]
1279 1 0 2 $_[1] || $_[0]
1395 0 0 25 $col < $col_first or $col > $col_last
1403 19 6 0 @tokens == 3 or @tokens == 7
1467 0 0 14 $col < $col_first or $col > $col_last
1598 0 0 4 $value =~ /\D/ or $value < 1
0 0 4 $value =~ /\D/ or $value < 1 or $value > 500
1859 0 0 3 $scale < 10 or $scale > 400
1880 0 0 3 $scale < 10 or $scale > 400
2190 0 0 3976 $error ||= $ret
2236 0 0 5955 $error ||= $ret
2503 3 7 70 $token =~ /^\s/ or $token =~ /\s$/
2939 4 5 66 $url =~ /^\w:/ or $url =~ /^\\\\/
2951 1 0 82 length $url > $max_url or length $tmp_url_str > $max_url
3159 58 155 438 $year % 4 == 0 and $year % 100 or $year % 400 == 0
3164 6 0 645 $year < $epoch or $year > 9999
3165 4 2 639 $month < 1 or $month > 12
3166 2 4 633 $day < 1 or $day > $mdays[$month - 1]
3273 5 1 0 shift() || $self->{'_original_row_height'}
3369 0 1 6 $type eq "array_formula" or $type eq "blank"
1 1 5 $type eq "array_formula" or $type eq "blank" or $type eq "rich_string"
3574 2 15 50 $param->{'validate'} eq "none" or $param->{'validate'} eq "list"
17 1 49 $param->{'validate'} eq "none" or $param->{'validate'} eq "list" or $param->{'validate'} eq "custom"
3621 41 1 25 $param->{'criteria'} eq "between" or $param->{'criteria'} eq "notBetween"
3656 5 2 60 $param->{'validate'} eq "date" or $param->{'validate'} eq "time"
3921 2 0 147 $param->{'type'} eq "date" or $param->{'type'} eq "time"
4050 1 12 136 $self->{'_use_data_bars_2010'} or $param->{'data_bar_2010'}
12 1 135 $self->{'_use_data_bars_2010'} or $param->{'data_bar_2010'} or $param->{'bar_solid'}
1 1 134 $self->{'_use_data_bars_2010'} or $param->{'data_bar_2010'} or $param->{'bar_solid'} or $param->{'bar_border_color'}
1 1 133 $self->{'_use_data_bars_2010'} or $param->{'data_bar_2010'} or $param->{'bar_solid'} or $param->{'bar_border_color'} or $param->{'bar_negative_color'}
1 1 132 $self->{'_use_data_bars_2010'} or $param->{'data_bar_2010'} or $param->{'bar_solid'} or $param->{'bar_border_color'} or $param->{'bar_negative_color'} or $param->{'bar_negative_color_same'}
1 1 131 $self->{'_use_data_bars_2010'} or $param->{'data_bar_2010'} or $param->{'bar_solid'} or $param->{'bar_border_color'} or $param->{'bar_negative_color'} or $param->{'bar_negative_color_same'} or $param->{'bar_negative_border_color'}
1 1 130 $self->{'_use_data_bars_2010'} or $param->{'data_bar_2010'} or $param->{'bar_solid'} or $param->{'bar_border_color'} or $param->{'bar_negative_color'} or $param->{'bar_negative_color_same'} or $param->{'bar_negative_border_color'} or $param->{'bar_negative_border_color_same'}
1 1 129 $self->{'_use_data_bars_2010'} or $param->{'data_bar_2010'} or $param->{'bar_solid'} or $param->{'bar_border_color'} or $param->{'bar_negative_color'} or $param->{'bar_negative_color_same'} or $param->{'bar_negative_border_color'} or $param->{'bar_negative_border_color_same'} or $param->{'bar_no_border'}
1 2 127 $self->{'_use_data_bars_2010'} or $param->{'data_bar_2010'} or $param->{'bar_solid'} or $param->{'bar_border_color'} or $param->{'bar_negative_color'} or $param->{'bar_negative_color_same'} or $param->{'bar_negative_border_color'} or $param->{'bar_negative_border_color_same'} or $param->{'bar_no_border'} or $param->{'bar_axis_position'}
2 1 126 $self->{'_use_data_bars_2010'} or $param->{'data_bar_2010'} or $param->{'bar_solid'} or $param->{'bar_border_color'} or $param->{'bar_negative_color'} or $param->{'bar_negative_color_same'} or $param->{'bar_negative_border_color'} or $param->{'bar_negative_border_color_same'} or $param->{'bar_no_border'} or $param->{'bar_axis_position'} or $param->{'bar_axis_color'}
1 2 124 $self->{'_use_data_bars_2010'} or $param->{'data_bar_2010'} or $param->{'bar_solid'} or $param->{'bar_border_color'} or $param->{'bar_negative_color'} or $param->{'bar_negative_color_same'} or $param->{'bar_negative_border_color'} or $param->{'bar_negative_border_color_same'} or $param->{'bar_no_border'} or $param->{'bar_axis_position'} or $param->{'bar_axis_color'} or $param->{'bar_direction'}
4245 1 28 0 $param->{'bar_border_color'} ||= $param->{'bar_color'}
4503 0 0 1 not $name =~ /^[\w\\][\w\\.]*$/ or $name =~ /^\d/
4515 0 0 1 $name =~ /^[rcRC]$/ or $name =~ /^[rcRC]\d+[rcRC]\d+$/
5237 1006 0 15863 $ignore_row || $ignore_col
5243 840 19 14999 not defined $self->{'_dim_rowmin'} or $row < $self->{'_dim_rowmin'}
5247 840 3959 11059 not defined $self->{'_dim_rowmax'} or $row > $self->{'_dim_rowmax'}
5254 849 17 15040 not defined $self->{'_dim_colmin'} or $col < $self->{'_dim_colmin'}
5258 849 1517 13540 not defined $self->{'_dim_colmax'} or $col > $self->{'_dim_colmax'}
5764 0 0 406 $chart->{'_already_inserted'} or $chart->{'_combined'} and $chart->{'_combined'}{'_already_inserted'}
5893 0 0 0 $type eq "a" or $type eq "d"
6077 18 1 7 $url =~ m[^[fh]tt?ps?://] or $url =~ /^mailto:/
6089 3 1 1 $target =~ /^\w:/ or $target =~ /^\\\\/
7030 8 9 1064 $self->{'_fit_page'} or $self->{'_filter_on'}
9 2 1062 $self->{'_fit_page'} or $self->{'_filter_on'} or $self->{'_tab_color'}
2 1 1061 $self->{'_fit_page'} or $self->{'_filter_on'} or $self->{'_tab_color'} or $self->{'_outline_changed'}
1 6 1055 $self->{'_fit_page'} or $self->{'_filter_on'} or $self->{'_tab_color'} or $self->{'_outline_changed'} or $self->{'_vba_codename'}
7044 8 2 16 $self->{'_fit_page'} or $self->{'_tab_color'}
2 1 15 $self->{'_fit_page'} or $self->{'_tab_color'} or $self->{'_outline_changed'}
7090 805 9 274 defined $self->{'_dim_rowmin'} || defined $self->{'_dim_colmin'}
7239 52 17 1089 @{$self->{'_panes'};} or @{$self->{'_selections'};}
7506 425 3496 1049215 $self->{'_set_rows'}{$row_num} or $self->{'_table'}{$row_num}
3496 307 1048908 $self->{'_set_rows'}{$row_num} or $self->{'_table'}{$row_num} or $self->{'_comments'}{$row_num}
7570 1 299 0 $self->{'_set_rows'}{$row_num} or $self->{'_table'}{$row_num}
299 0 0 $self->{'_set_rows'}{$row_num} or $self->{'_table'}{$row_num} or $self->{'_comments'}{$row_num}
7665 65636 796 987010 ($row_num + 1) % 16 == 0 or $row_num == $self->{'_dim_rowmax'}
7823 9 1 61 $type eq "a" or $type eq "d"
7851 3 0 291 $string =~ /^\s/ or $string =~ /\s$/
9528 1 1 95 $param->{'type'} eq "containsText" or $param->{'type'} eq "notContainsText"
2 3 92 $param->{'type'} eq "containsText" or $param->{'type'} eq "notContainsText" or $param->{'type'} eq "beginsWith"
4 3 89 $param->{'type'} eq "containsText" or $param->{'type'} eq "notContainsText" or $param->{'type'} eq "beginsWith" or $param->{'type'} eq "endsWith"
1 1 77 $param->{'type'} eq "containsBlanks" or $param->{'type'} eq "notContainsBlanks"
2 1 76 $param->{'type'} eq "containsBlanks" or $param->{'type'} eq "notContainsBlanks" or $param->{'type'} eq "containsErrors"
2 1 75 $param->{'type'} eq "containsBlanks" or $param->{'type'} eq "notContainsBlanks" or $param->{'type'} eq "containsErrors" or $param->{'type'} eq "notContainsErrors"
9541 1 28 2 $value =~ /(\$?)([A-Z]{1,3})(\$?)(\d+)/ or $value =~ /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/
9846 1 1 48 $type eq "min" or $type eq "max"
2 19 29 $type eq "min" or $type eq "max" or $type eq "autoMin"
20 20 9 $type eq "min" or $type eq "max" or $type eq "autoMin" or $type eq "autoMax"
9939 11 11 1056 $has_data_bars or $has_sparklines
10030 1 1 23 $data_bar->{'bar_no_border'} or $data_bar->{'bar_negative_border_color_same'}
10114 1 1 23 $data_bar->{'bar_no_border'} or $data_bar->{'bar_negative_border_color_same'}