Branch Coverage

blib/lib/Spreadsheet/WriteExcelXML/Worksheet.pm
Criterion Covered Total %
branch 415 566 73.3


line true false branch
149 11 67 if ($$self{'_lower_cell_limits'})
301 24 0 if ($cell =~ /^\D/)
313 0 24 if @_ < 3
316 2 22 if $self->_check_dimensions(0, $lastcol)
324 12 10 if (defined $width)
328 0 12 if $width == 0
350 1 0 if ($_[0] =~ /^\D/)
369 0 0 if ($_[0] =~ /^\D/)
446 0 2 if (length $string >= 255)
467 0 2 if (length $string >= 255)
488 0 1 if (defined $_[0]) { }
507 0 1 if (defined $_[0]) { }
573 4 0 defined $_[0] ? :
587 4 0 defined $_[0] ? :
601 4 0 defined $_[0] ? :
615 4 0 defined $_[0] ? :
636 2 2 if ($row_min == $row_max) { }
664 4 0 if ($_[0] =~ /^\D/)
678 2 2 if ($col_min == $col_max) { }
706 14 2 if ($_[0] =~ /^\D/)
710 3 13 if @_ != 4
715 1 12 if ($row1 == 0 and $col1 == 0 and $row2 == $$self{'_xls_rowmax'} - 1 and $col2 == $$self{'_xls_colmax'} - 1)
739 2 0 if ($_[0] =~ /^\D/)
743 0 2 if @_ != 4
776 4 0 if ($col =~ /^\D/)
780 0 4 if $col >= $$self{'_xls_colmax'}
787 0 4 if $col < $col_first or $col > $col_last
792 0 4 unless @tokens == 3 or @tokens == 7
803 2 2 @tokens == 3 ? :
804 2 2 @tokens == 3 ? :
831 0 8 unless (exists $operators{$_})
870 2 12 if ($row1 == 0 and $row2 == $$self{'_xls_rowmax'} - 1) { }
2 10 elsif ($col1 == 0 and $col2 == $$self{'_xls_colmax'} - 1) { }
885 6 8 if ($range1 eq $range2) { }
915 0 2 unless defined $option
917 0 2 if ($option == 0) { }
1 1 elsif ($option == 1) { }
942 2 1 defined $_[0] ? :
957 0 1 if (defined $_[0]) { }
1023 0 0 if ($scale < 10 or $scale > 400)
1044 0 1 if ($scale < 10 or $scale > 400)
1067 0 0 if (defined $_[0]) { }
1086 0 0 unless @_ == 2
1087 0 0 unless ref $_[1] eq 'CODE'
1108 129 141 if ($_[0] =~ /^\D/)
1115 0 270 unless defined $token
1123 0 0 if ($token =~ /$re/)
1125 0 0 if defined $match
1131 26 244 if (ref $token eq 'ARRAY') { }
0 244 elsif ($$self{'_leading_zeros'} and $token =~ /^0\d+$/) { }
39 205 elsif ($token =~ /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/) { }
6 199 elsif ($token =~ m[^[fh]tt?ps?://]) { }
1 198 elsif ($token =~ /^mailto:/) { }
0 198 elsif ($token =~ /^(?:in|ex)ternal:/) { }
2 196 elsif ($token =~ /^=/) { }
1 195 elsif ($token =~ /^{=.*}$/) { }
2 193 elsif ($token eq '') { }
1190 1 26 if ($_[0] =~ /^\D/)
1195 0 27 if (ref $_[2] ne 'ARRAY')
1209 6 90 if (ref $token eq 'ARRAY') { }
1240 0 6 if ($_[0] =~ /^\D/)
1245 0 6 if (ref $_[2] ne 'ARRAY')
1290 8 0 if ($_[0] =~ /^\D/)
1295 0 8 if (@_ < 3)
1306 0 8 if $self->_check_dimensions($row, $col)
1309 0 8 if ($length > $max_len)
1316 0 8 if $self->_check_dimensions($row, $col)
1322 1 7 unless ($$self{'_table'}[$row][$col])
1352 64 251 if (ref $format) { }
1385 30 180 if ($cell =~ /\$?([A-Z]{1,3}):\$?([A-Z]{1,3})/)
1392 33 147 if ($cell =~ /\$?([A-Z]{1,3}\$?\d+):\$?([A-Z]{1,3}\$?\d+)/)
1399 147 0 if ($cell =~ /\$?([A-Z]{1,3}\$?\d+)/)
1428 344 16 $1 eq '' ? :
1430 344 16 $3 eq '' ? :
1474 0 6 if $array[0] == 0
1478 0 6 if @array > 1000
1495 0 0 defined $_[0] ? :
1496 0 0 defined $_[1] ? :
1497 0 0 defined $_[2] ? :
1501 0 0 if $$self{'_outline_on'}
1531 0 39 if ($_[0] =~ /^\D/)
1535 0 39 if (@_ < 3)
1545 0 39 if $self->_check_dimensions($row, $col)
1569 1 196 if ($_[0] =~ /^\D/)
1573 0 197 if (@_ < 3)
1586 12 185 if $self->_check_dimensions($row, $col)
1588 0 185 if (length $str > $$self{'_xls_strmax'})
1594 0 185 if ($$self{'_table'}[$row][$col])
1621 3 0 if ($_[0] =~ /^\D/)
1625 0 3 if (@_ < 3)
1659 0 2 if ($_[0] =~ /^\D/)
1664 0 2 if @_ < 2
1667 1 1 unless defined $_[2]
1679 0 1 if $self->_check_dimensions($row, $col)
1704 0 3 if ($_[0] =~ /^\D/)
1708 0 3 if (@_ < 3)
1720 0 3 if $self->_check_dimensions($row, $col)
1723 1 2 if $formula =~ s/^{(.*)}$/$1/
1756 4 0 if ($_[0] =~ /^\D/)
1760 0 4 if (@_ < 5)
1776 0 4 if $row1 > $row2
1777 0 4 if $col1 > $col2
1781 0 4 if $self->_check_dimensions($row2, $col2)
1787 1 3 if ($row1 == $row2 and $col1 == $col2) { }
1871 0 7 if ($_[0] =~ /^\D/)
1875 0 7 if (@_ < 3)
1883 6 1 if ref $args[3]
1897 4 3 unless defined $str
1900 0 7 if $self->_check_dimensions($row, $col)
1927 0 0 if ($_[0] =~ /^\D/)
1932 0 0 if @_ < 5
1941 0 0 if ref $args[5]
1947 0 0 if $url =~ /^internal:/
1948 0 0 if $url =~ /^external:/
1970 1 0 if ($_[0] =~ /^\D/)
1974 0 1 if (@_ < 3)
1984 0 1 if $self->_check_dimensions($row, $col)
1990 0 1 unless (defined $date_time)
2040 7 625 if $date_time =~ /[^0-9T:\-\.Z]/
2043 0 625 unless $date_time =~ /\dT|T\d/
2054 204 421 if ($time ne '')
2056 204 0 if ($time =~ /^(\d\d):(\d\d)(:(\d\d(\.\d+)?))?/) { }
2066 1 203 if $hour >= 24
2067 1 202 if $min >= 60
2068 2 200 if $sec >= 60
2076 0 621 if $date eq ''
2080 619 2 if ($date =~ /^(\d\d\d\d)-(\d\d)-(\d\d)$/) { }
2094 410 209 unless ($date_1904)
2095 104 306 if $date eq '1899-12-31'
2096 1 305 if $date eq '1900-01-00'
2097 1 304 if $date eq '1900-02-29'
2106 209 304 $date_1904 ? :
2107 209 304 $date_1904 ? :
2115 207 306 if $year % 4 == 0 and $year % 100 or $year % 400 == 0
2116 207 306 if $leap
2120 6 507 if $year < $epoch or $year > 9999
2121 6 501 if $month < 1 or $month > 12
2122 6 495 if $day < 1 or $day > $mdays[$month - 1]
2135 292 203 if $date_1904 == 0 and $days > 59
2170 0 43 if @_ < 2
2173 2 41 if $self->_check_dimensions($row, 0)
2181 25 16 if ($height)
2185 0 25 if $height == 0
2206 10 344 if ($row >= $$self{'_xls_rowmax'})
2207 6 338 if ($col >= $$self{'_xls_colmax'})
2211 48 290 if ($row < $$self{'_dim_rowmin'})
2212 125 213 if ($row > $$self{'_dim_rowmax'})
2213 54 284 if ($col < $$self{'_dim_colmin'})
2214 36 302 if ($col > $$self{'_dim_colmax'})
2289 41 7 unless @cols
2296 24 31 unless ($span)
2302 17 7 if $col != $previous + 1
2303 9 15 if $format
2304 4 20 if $hidden
2306 14 10 if $width
2321 31 24 if (exists $$self{'_set_cols'}{$col + 1} and join('|', @{$$self{'_set_cols'}{$col};}) eq join('|', @{$$self{'_set_cols'}{$col + 1};}))
2329 9 15 if $span
2362 0 0 if ($rwFirst > $rwLast)
2366 0 0 if ($colFirst > $colLast)
2424 0 0 if ($$self{'_name'} eq $sheetname) { }
2464 0 0 if ($$self{'_frozen'}) { }
2466 0 0 unless defined $rwTop
2467 0 0 unless defined $colLeft
2471 0 0 unless defined $rwTop
2472 0 0 unless defined $colLeft
2487 0 0 unless (defined $pnnAct)
2488 0 0 if $x != 0 and $y != 0
2489 0 0 if $x != 0 and $y == 0
2490 0 0 if $x == 0 and $y != 0
2491 0 0 if $x == 0 and $y == 0
2512 1 13 if $$self{'_orientation'} == 0
2513 1 13 if $$self{'_hcenter'} == 1
2514 1 13 if $$self{'_vcenter'} == 1
2515 0 14 if $$self{'_page_start'} > 0
2521 1 13 if $$self{'_margin_head'} != 0.5
2523 2 12 if $$self{'_header'} ne ''
2529 1 13 if $$self{'_margin_foot'} != 0.5
2531 2 12 if $$self{'_footer'} ne ''
2537 3 11 if $$self{'_margin_bottom'} != 1
2539 3 11 if $$self{'_margin_left'} != 0.75
2541 3 11 if $$self{'_margin_right'} != 0.75
2543 3 11 if $$self{'_margin_top'} != 1
2548 3 11 if @layout
2549 2 12 if @header
2550 2 12 if @footer
2551 7 7 if @margins
2566 2 10 if ($$self{'_fit_width'} > 1)
2572 1 11 if ($$self{'_fit_height'} > 1)
2583 0 12 if $$self{'_black_white'}
2584 0 12 if $$self{'_page_order'}
2585 0 12 if $$self{'_draft_quality'}
2588 1 11 if ($$self{'_paper_size'})
2594 1 11 if ($$self{'_print_scale'} != 100)
2601 2 10 if $$self{'_print_gridlines'}
2602 1 11 if $$self{'_print_headers'}
2617 53 2 unless (keys %{$$self{'_names'};} or $$self{'_repeat_rows'} or $$self{'_repeat_cols'})
2623 6 14 if ($$self{'_repeat_rows'} or $$self{'_repeat_cols'})
2647 2 18 if ($key eq '_FilterDatabase')
2675 18 1 if ($_[0] =~ /^\D/)
2678 0 19 if @_ != 6
2679 0 19 unless ref $_[5]
2690 0 19 if $rwFirst == $rwLast and $colFirst == $colLast
2694 2 17 if $rwFirst > $rwLast
2695 1 18 if $colFirst > $colLast
2699 0 19 if $self->_check_dimensions($rwLast, $colLast)
2722 68 2 unless @{$$self{'_hbreaks'};} or @{$$self{'_vbreaks'};}
2730 3 2 if (@{$$self{'_vbreaks'};})
2747 3 2 if (@{$$self{'_hbreaks'};})
2779 0 0 unless $$self{'_protect'}
2805 0 12 if ($width < 1) { }
2843 0 0 if $$self{'_zoom'} == 100
2862 0 0 if (@_ < 3)
2899 25 48 unless $$self{'_dim_changed'}
2934 2228194 183 unless $$self{'_set_rows'}{$row} or $$self{'_table'}[$row]
2936 163 20 unless ($span)
2942 42 121 if $row != $previous + 1
2943 11 152 if $height or $autofit
2944 11 152 if $height
2945 4 159 if $hidden
2946 10 153 if $format
2956 20 14 if (not $$self{'_table'}[$row] || $$self{'_table'}[$row + 1] and exists $$self{'_set_rows'}{$row} and exists $$self{'_set_rows'}{$row + 1} and join('|', @{$$self{'_set_rows'}{$row};}) eq join('|', @{$$self{'_set_rows'}{$row + 1};}))
2967 6 157 if $span
2971 147 16 if (my $row_ref = $$self{'_table'}[$row]) { }
2978 254 33424 if $col_ref
3019 60 194 if $col != $$self{'prev_col'} + 1
3026 19 235 if (exists $$self{'_merge'}{$row} and exists $$self{'_merge'}{$row}{$col})
3031 14 5 if $across
3032 10 9 if $down
3037 19 65 if $m_row == 0 and $m_col == 0
3052 8 246 if (exists $$self{'_comment'}{$row} and exists $$self{'_comment'}{$row}{$col})
3060 38 216 if $format
3064 7 247 if ($datatype == $$self{'_datatypes'}{'Formula'})
3067 5 2 if $array_range
3071 7 247 if ($datatype == $$self{'_datatypes'}{'HRef'})
3075 1 6 if defined $tip
3085 39 215 if ($datatype == $$self{'_datatypes'}{'Number'}) { }
184 31 elsif ($datatype == $$self{'_datatypes'}{'String'}) { }
1 30 elsif ($datatype == $$self{'_datatypes'}{'DateTime'}) { }
7 23 elsif ($datatype == $$self{'_datatypes'}{'Formula'}) { }
7 16 elsif ($datatype == $$self{'_datatypes'}{'HRef'}) { }
1 15 elsif ($datatype == $$self{'_datatypes'}{'Blank'}) { }
1 14 elsif ($datatype == $$self{'_datatypes'}{'Comment'}) { }
14 0 elsif ($datatype == $$self{'_datatypes'}{'Merge'}) { }
3088 1 38 if $comment
3099 5 179 if ($html) { }
3102 3 181 if $comment
3111 1 0 if $comment
3118 1 6 if ($comment) { }
3138 0 7 if ($self->convert_date_time($data)) { }
0 7 elsif ($$self{'_leading_zeros'} and $data =~ /^0\d+$/) { }
0 7 elsif ($data =~ /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/) { }
3154 1 6 if $comment
3162 0 1 if ($comment) { }
3174 1 0 if ($comment) { }
3210 39 187 if ($datatype eq 'Number') { }
3387 16 71 if ($row_abs) { }
3391 55 16 unless $row == $current_row
3397 16 71 if ($col_abs) { }
3401 36 35 unless $col == $current_col
3438 4 6 if ($row_abs) { }
3442 4 2 unless $row == $current_row
3449 3 2 if ($row1 eq $row2) { }
3487 0 12 if ($col > $$self{'_xls_colmax'})
3494 4 8 if ($col_abs) { }
3498 8 0 unless $col == $current_col
3504 4 2 if ($col_letter1 eq $col_letter2) { }
3522 42 31 unless $options_changed
3530 14 17 if ($setup_changed)
3537 4 27 if $$self{'_fit_page'}
3540 12 19 if ($print_changed)
3546 1 30 if $$self{'_screen_gridlines'} == 0
3549 2 29 if $$self{'_filter_on'}
3570 3 59 if ($$self{'_orientation'} == 0 or $$self{'_hcenter'} == 1 or $$self{'_vcenter'} == 1 or $$self{'_header'} ne '' or $$self{'_footer'} ne '' or $$self{'_margin_head'} != 0.5 or $$self{'_margin_foot'} != 0.5 or $$self{'_margin_left'} != 0.75 or $$self{'_margin_right'} != 0.75 or $$self{'_margin_top'} != 1 or $$self{'_margin_bottom'} != 1)
3589 2 71 if ($$self{'_fit_width'} == 1 and $$self{'_fit_height'} == 1)
3596 5 61 if ($$self{'_fit_width'} > 1 or $$self{'_fit_height'} > 1 or $$self{'_page_order'} == 1 or $$self{'_black_white'} == 1 or $$self{'_draft_quality'} == 1 or $$self{'_print_comments'} == 1 or $$self{'_paper_size'} != 0 or $$self{'_print_scale'} != 100 or $$self{'_print_gridlines'} == 1 or $$self{'_print_headers'} == 1 or @{$$self{'_hbreaks'};} > 0 or @{$$self{'_vbreaks'};} > 0)
3615 26 47 if ($print_changed or $setup_changed)
3624 1 72 if $$self{'_screen_gridlines'} == 0
3625 2 71 if $$self{'_filter_on'}
3641 71 2 unless $$self{'_autofilter'}
3678 4 4 if (defined $$self{'_filter_cols'}{$col})
3683 2 2 if $col != $prev_col + 1
3695 2 2 if (@tokens == 2) { }
3748 2 20 if ($sheetname =~ /^Sheet\d+$/) { }