Condition Coverage

blib/lib/Excel/Writer/XLSX/Worksheet.pm
Criterion Covered Total %
condition 579 699 82.8


and 3 conditions

line !l l&&!r l&&r condition
615 24 162 3 $data[2] and $data[4]
699 7 0 1 $row_first == $row_last and $col_first == $col_last
1224 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
1319 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
1516 2 2 0 $token ne 'items' and $token ne '%'
1536 59 0 0 not $operator and $tokens[0]
1546 5 2 0 $operator != 2 and $operator != 5
1575 36 20 3 $operator == 2 and $token =~ /[*?]/
1612 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
1628 37 2 1 $range1 eq $range2 and not $row_col_only
2003 9386 0 0 $self->{'_leading_zeros'} and $token =~ /^0\d+$/
2224 7202 3 2 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
2286 2694 12 278 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
2380 28 4 1 $last eq 'format' and $pos > 0
2435 20 0 8 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
2485 60 1 0 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
2538 110 1 0 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
2592 3 0 4 $row1 == $row2 and $col1 == $col2
2608 7 0 0 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
2620 6 0 7 $row == $row1 and $col == $col1
2658 4 0 0 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
2748 53 17 13 defined $args[3] and not ref $args[3]
2806 66 5 4 $url_str and not $external
2842 81 1 0 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
2908 129 0 0 $self->{'_optimization'} == 1 and $row > $self->{'_previous_row'}
3032 427 166 58 $year % 4 == 0 and $year % 100
3052 206 4 423 $date_1904 == 0 and $days > 59
3167 7 13 0 $row_first == $row_last and $col_first == $col_last
3189 22 26 20 $row == $row_first and $col == $col_first
3238 0 7 0 $row_first == $row_last and $col_first == $col_last
3286 0 7 7 $row == $row_first and $col == $col_first
3321 5 63 0 @_ != 5 and @_ != 3
3412 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'}
3520 49 17 1 $param->{'input_title'} and length $param->{'input_title'} > 32
3527 62 4 0 $param->{'error_title'} and length $param->{'error_title'} > 32
3534 50 15 1 $param->{'input_message'} and length $param->{'input_message'} > 255
3541 62 3 0 $param->{'error_message'} and length $param->{'error_message'} > 255
3763 79 17 53 defined $param->{'criteria'} and exists $criteria_type{lc $param->{'criteria'}}
3773 1 0 1 defined $param->{'value'} and $param->{'value'} =~ /T/
3786 1 0 1 defined $param->{'minimum'} and $param->{'minimum'} =~ /T/
3799 1 0 1 defined $param->{'maximum'} and $param->{'maximum'} =~ /T/
3883 61 14 74 $row1 == $row2 and $col1 == $col2
3898 122 0 27 defined $param->{'format'} and ref $param->{'format'}
4135 5 0 20 $param->{'min_type'} eq 'min' and $param->{'min_value'} == 0
4139 4 0 21 $param->{'max_type'} eq 'max' and $param->{'max_value'} == 0
4219 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'
4237 16 7 7 defined $user_props->[$i]{'criteria'} and $user_props->[$i]{'criteria'} eq '>'
4273 0 0 48 @_ and $_[0] =~ /^\D/
4501 74 0 9 defined $user_data->{'format'} and ref $user_data->{'format'}
4627 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'
4714 57 0 1 $date_range and not $date_range =~ /!/
5050 908 14870 308 not $ignore_row || $ignore_col and $self->{'_optimization'} == 1
5151 4704 1 8 $x1 < 0 and $col_start > 0
5157 4704 1 4 $y1 < 0 and $row_start > 0
5362 159 3 8 $hidden == 1 and $anchor != 4
5401 59 5 20 $hidden == 1 and $anchor != 4
5545 364 10 0 $chart->{'_combined'} and $chart->{'_combined'}{'_already_inserted'}
5870 0 1 20 $target and not exists $self->{'_drawing_rels'}{$url}
5966 28 17 45 not $used and $id != 0
6101 0 0 12 $shape->{'_start'} and $shape->{'_end'}
6104 0 0 12 $shape->{'_start_side'} and $shape->{'_end_side'}
6174 2 2 1 $smidx < $emidx and $smidy > $emidy
6175 3 1 1 $smidx > $emidx and $smidy < $emidy
6683 1 4 0 @pairs and $pairs[-2] eq 'result'
6816 749 0 6 not defined $self->{'_dim_rowmin'} and defined $self->{'_dim_colmin'}
595 20 134 $self->{'_dim_rowmin'} == $self->{'_dim_rowmax'} and $self->{'_dim_colmin'} == $self->{'_dim_colmax'}
7535 8621 1076 0 $self->{'_set_rows'}{$row} and $self->{'_set_rows'}{$row}[1]
7569 290 0 8 $string =~ /^/ and $string =~ m[$]
7591 32 26 17 $value and not $value =~ /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/
7785 17 3 3 $self->{'_fit_page'} and $self->{'_fit_width'} != 1
7789 17 2 4 $self->{'_fit_page'} and $self->{'_fit_height'} != 1
8182 8 8 2 @filters == 1 and @non_blanks == 0
8336 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}
8498 7 8 13 $row and $col
8581 7 5 26 $top_row == $row and $left_col == $col
8595 14 14 10 $row and $col
8878 0 0 56 $format->{'_font'} eq 'Calibri' and not $format->{'_hyperlink'}
9018 3 0 65 $row_first == $row_last and $col_first == $col_last
9192 31 0 5 defined $param->{'minimum'} and defined $param->{'maximum'}
9230 2 0 2 defined $param->{'criteria'} and $param->{'criteria'} eq '%'
9332 33 0 4 exists $param->{'icons_only'} and $param->{'icons_only'}
9336 31 0 6 exists $param->{'reverse_icons'} and $param->{'reverse_icons'}

or 2 conditions

line l !l condition
67 8 1324 $_[9] || 0
71 936 396 $_[13] || 2079
491 6 21 shift() || ''
492 25 2 shift() || {}
641 11 178 $data[4] || 0
738 44 22 shift() || 0
741 41 25 shift() || 0
859 30 1 $_[0] || ''
860 2 29 $_[1] || 0.3
861 23 8 $_[2] || {}
924 14 1 $_[0] || ''
925 2 13 $_[1] || 0.3
926 7 8 $_[2] || {}
1764 3 0 $_[0] || 100
1785 3 0 $_[0] || 100
1938 0 0 $_[0] || 0
1939 0 0 $_[1] || 0
2682 1 0 $_[3] || 0
2821 17 66 $url_str || ''
2976 205 1 $4 || 0
3070 277 105 shift() || 0
3071 53 329 shift() || 0
3072 4 378 shift() || 0
3125 3 3 shift() || 0
4041 0 1 $param->{'min_type'} ||= 'min'
4042 0 1 $param->{'max_type'} ||= 'max'
4043 0 1 $param->{'min_value'} ||= 0
4044 0 1 $param->{'max_value'} ||= 0
4045 0 1 $param->{'min_color'} ||= '#FF7128'
4046 0 1 $param->{'max_color'} ||= '#FFEF9C'
4060 1 3 $param->{'min_type'} ||= 'min'
4061 1 3 $param->{'mid_type'} ||= 'percentile'
4062 1 3 $param->{'max_type'} ||= 'max'
4063 1 3 $param->{'min_value'} ||= 0
4065 1 3 $param->{'max_value'} ||= 0
4066 1 3 $param->{'min_color'} ||= '#F8696B'
4067 1 3 $param->{'mid_color'} ||= '#FFEB84'
4068 1 3 $param->{'max_color'} ||= '#63BE7B'
4098 4 25 $param->{'min_value'} ||= 0
4099 4 25 $param->{'max_value'} ||= 0
4100 15 14 $param->{'bar_color'} ||= '#638EC6'
4102 2 27 $param->{'bar_only'} ||= 0
4103 1 28 $param->{'bar_no_border'} ||= 0
4104 1 28 $param->{'bar_solid'} ||= 0
4105 2 27 $param->{'bar_direction'} ||= ''
4106 1 28 $param->{'bar_negative_color'} ||= '#FF0000'
4107 1 28 $param->{'bar_negative_border_color'} ||= '#FF0000'
4108 1 28 $param->{'bar_negative_color_same'} ||= 0
4109 1 28 $param->{'bar_negative_border_color_same'} ||= 0
4110 2 27 $param->{'bar_axis_position'} ||= ''
4111 1 28 $param->{'bar_axis_color'} ||= '#000000'
4291 29 19 $_[4] || {}
4484 2 38 $user_data->{'total_value'} || 0
4625 9 49 $param->{'type'} || 'line'
4698 2 56 $param->{'empty_cells'} || ''
4721 38 20 $param->{'style'} || 0
5348 5863 35641 shift() || 0
5393 11453 52541 shift() || 0
5529 0 3 $options->{'x_offset'} || 0
5530 0 3 $options->{'y_offset'} || 0
5531 2 1 $options->{'x_scale'} || 1
5532 2 1 $options->{'y_scale'} || 1
5533 2 1 $options->{'object_position'} || 1
5537 25 346 $_[3] || 0
5538 25 346 $_[4] || 0
5539 1 370 $_[5] || 1
5540 1 370 $_[6] || 1
5541 1 370 $_[7] || 1
5691 0 0 $cell->[3] || 0
5696 0 0 $cell->[4] || 0
5745 1 23 $options->{'x_offset'} || 0
5746 1 23 $options->{'y_offset'} || 0
5747 1 23 $options->{'x_scale'} || 1
5748 1 23 $options->{'y_scale'} || 1
5749 1 23 $options->{'object_position'} || 2
5755 12 67 $_[3] || 0
5756 13 66 $_[4] || 0
5757 5 74 $_[5] || 1
5758 5 74 $_[6] || 1
5759 5 74 $_[7] || 2
5950 28 17 $_[3] || 0
5951 28 17 $_[4] || 0
5957 0 45 $_[7] || 1
5962 73 17 $shape->{'_id'} || 0
7083 147 45 $_[0] || 0
7084 161 31 $_[1] || 0
7087 13 179 $_[4] || 0
7088 1 191 $_[5] || 0
7089 0 192 $_[6] || 0
7289 288 8 shift() || 0
7422 281 3999 shift() || 0
7423 53 4227 shift() || 0
7424 4 4276 shift() || 0
7425 367 3913 shift() || 0
7588 43 32 $cell->[3] || 0
9238 4 0 $param->{'value'} || 10

or 3 conditions

line l !l&&r !l&&!r condition
739 15 30 21 shift() || $row
740 14 30 22 shift() || $col
1149 1 0 5 $_[1] || $_[0]
1187 1 0 2 $_[1] || $_[0]
1303 0 0 25 $col < $col_first or $col > $col_last
1311 19 6 0 @tokens == 3 or @tokens == 7
1375 0 0 14 $col < $col_first or $col > $col_last
1506 0 0 4 $value =~ /\D/ or $value < 1
0 0 4 $value =~ /\D/ or $value < 1 or $value > 500
1767 0 0 3 $scale < 10 or $scale > 400
1788 0 0 3 $scale < 10 or $scale > 400
2098 0 0 3869 $error ||= $ret
2144 0 0 5423 $error ||= $ret
2411 3 7 70 $token =~ /^\s/ or $token =~ /\s$/
2812 4 5 66 $url =~ /^\w:/ or $url =~ /^\\\\/
2824 1 0 82 length $url > $max_url or length $tmp_url_str > $max_url
3032 58 155 438 $year % 4 == 0 and $year % 100 or $year % 400 == 0
3037 6 0 645 $year < $epoch or $year > 9999
3038 4 2 639 $month < 1 or $month > 12
3039 2 4 633 $day < 1 or $day > $mdays[$month - 1]
3124 5 1 0 shift() || $self->{'_original_row_height'}
3219 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'
3421 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'
3468 41 1 25 $param->{'criteria'} eq 'between' or $param->{'criteria'} eq 'notBetween'
3503 5 2 60 $param->{'validate'} eq 'date' or $param->{'validate'} eq 'time'
3770 2 0 147 $param->{'type'} eq 'date' or $param->{'type'} eq 'time'
3906 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'}
4101 1 28 0 $param->{'bar_border_color'} ||= $param->{'bar_color'}
4342 0 0 1 not $name =~ /^[\w\\][\w\\.]*$/ or $name =~ /^\d/
4354 0 0 1 $name =~ /^[rcRC]$/ or $name =~ /^[rcRC]\d+[rcRC]\d+$/
5050 908 0 15178 $ignore_row || $ignore_col
5056 783 23 14371 not defined $self->{'_dim_rowmin'} or $row < $self->{'_dim_rowmin'}
5060 783 3756 10638 not defined $self->{'_dim_rowmax'} or $row > $self->{'_dim_rowmax'}
5067 789 30 14400 not defined $self->{'_dim_colmin'} or $col < $self->{'_dim_colmin'}
5071 789 1415 13015 not defined $self->{'_dim_colmax'} or $col > $self->{'_dim_colmax'}
5545 0 0 374 $chart->{'_already_inserted'} or $chart->{'_combined'} and $chart->{'_combined'}{'_already_inserted'}
5847 15 1 5 $url =~ m[^[fh]tt?ps?://] or $url =~ /^mailto:/
6756 8 9 979 $self->{'_fit_page'} or $self->{'_filter_on'}
9 2 977 $self->{'_fit_page'} or $self->{'_filter_on'} or $self->{'_tab_color'}
2 1 976 $self->{'_fit_page'} or $self->{'_filter_on'} or $self->{'_tab_color'} or $self->{'_outline_changed'}
1 5 971 $self->{'_fit_page'} or $self->{'_filter_on'} or $self->{'_tab_color'} or $self->{'_outline_changed'} or $self->{'_vba_codename'}
6770 8 2 15 $self->{'_fit_page'} or $self->{'_tab_color'}
2 1 14 $self->{'_fit_page'} or $self->{'_tab_color'} or $self->{'_outline_changed'}
6816 749 6 248 defined $self->{'_dim_rowmin'} || defined $self->{'_dim_colmin'}
6965 52 17 1004 @{$self->{'_panes'};} or @{$self->{'_selections'};}
7232 380 3292 1049150 $self->{'_set_rows'}{$row_num} or $self->{'_table'}{$row_num}
3292 304 1048846 $self->{'_set_rows'}{$row_num} or $self->{'_table'}{$row_num} or $self->{'_comments'}{$row_num}
7296 1 295 0 $self->{'_set_rows'}{$row_num} or $self->{'_table'}{$row_num}
295 0 0 $self->{'_set_rows'}{$row_num} or $self->{'_table'}{$row_num} or $self->{'_comments'}{$row_num}
7391 65632 742 986754 ($row_num + 1) % 16 == 0 or $row_num == $self->{'_dim_rowmax'}
7577 3 0 287 $string =~ /^\s/ or $string =~ /\s$/
9187 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'
9200 1 28 2 $value =~ /(\$?)([A-Z]{1,3})(\$?)(\d+)/ or $value =~ /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/
9505 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'
9598 11 11 971 $has_data_bars or $has_sparklines
9689 1 1 23 $data_bar->{'bar_no_border'} or $data_bar->{'bar_negative_border_color_same'}
9773 1 1 23 $data_bar->{'bar_no_border'} or $data_bar->{'bar_negative_border_color_same'}