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
2516 0 14 if $self->{'_page_start'} > 0
2522 1 13 if $self->{'_margin_head'} != 0.5
2524 2 12 if $self->{'_header'} ne ''
2530 1 13 if $self->{'_margin_foot'} != 0.5
2532 2 12 if $self->{'_footer'} ne ''
2538 3 11 if $self->{'_margin_bottom'} != 1
2540 3 11 if $self->{'_margin_left'} != 0.75
2542 3 11 if $self->{'_margin_right'} != 0.75
2544 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 142 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 16 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 1 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') { }
3384 16 71 if ($row_abs) { }
3388 55 16 unless $row == $current_row
3394 16 71 if ($col_abs) { }
3398 36 35 unless $col == $current_col
3435 4 6 if ($row_abs) { }
3439 4 2 unless $row == $current_row
3446 3 2 if ($row1 eq $row2) { }
3484 0 12 if ($col > $self->{'_xls_colmax'})
3491 4 8 if ($col_abs) { }
3495 8 0 unless $col == $current_col
3501 4 2 if ($col_letter1 eq $col_letter2) { }
3519 42 31 unless $options_changed
3527 14 17 if ($setup_changed)
3534 4 27 if $self->{'_fit_page'}
3537 12 19 if ($print_changed)
3544 1 30 if $self->{'_screen_gridlines'} == 0
3546 2 29 if $self->{'_filter_on'}
3567 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)
3586 2 71 if ($self->{'_fit_width'} == 1 and $self->{'_fit_height'} == 1)
3593 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)
3612 26 47 if ($print_changed or $setup_changed)
3621 1 72 if $self->{'_screen_gridlines'} == 0
3622 2 71 if $self->{'_filter_on'}
3638 71 2 unless $self->{'_autofilter'}
3675 4 4 if (defined $self->{'_filter_cols'}{$col})
3680 2 2 if $col != $prev_col + 1
3692 2 2 if (@tokens == 2) { }
3745 2 20 if ($sheetname =~ /^Sheet\d+$/) { }