Branch Coverage

lib/Date/Manip/Recur.pm
Criterion Covered Total %
branch 649 818 79.3


line true false branch
91 1718 0 if ($range eq 'none') { }
0 0 elsif ($range eq 'year') { }
0 0 elsif ($range eq 'month') { }
0 0 elsif ($range eq 'week') { }
0 0 elsif ($range eq 'day') { }
0 0 elsif ($range eq 'all') { }
154 1097 506 unless ($keep)
183 364 123 unless ($err)
189 123 364 if ($err)
194 123 0 if ($string =~ /^([^*]*\*[^*]*)\*/) { }
198 123 0 unless ($err)
208 0 487 if ($err)
211 0 0 if ($string =~ s/^([^*]*)\*//) { }
215 0 0 unless ($err)
223 0 487 if ($err)
232 123 364 if (@string)
234 102 21 if $tmp
235 0 123 if $err
238 266 221 if (@args)
240 207 59 if ($tmp and not ref $tmp)
242 56 151 unless $err
248 25 462 if (@string)
250 5 20 if defined $tmp and $tmp
251 0 25 if $err
253 265 222 if (@args)
255 156 109 if defined $tmp and $tmp
256 0 265 if $err
261 24 463 if (@string)
266 24 0 if defined $start and $start
267 0 24 if $err
269 24 0 if defined $end and $end
270 0 24 if $err
272 265 222 if (@args)
277 226 39 if defined $start and $start
278 0 265 if $err
280 226 39 if defined $end and $end
281 0 265 if $err
286 0 487 if (@string)
290 0 487 if (@args)
300 0 942 unless defined $string
310 782 160 if ($string =~ /$stdrx/)
313 782 0 if (defined $l)
321 782 0 if (defined $r)
341 28 132 if ($string =~ s/$eachrx/ /g)
347 0 160 unless ($string)
353 128 32 if ($err)
363 552 230 if (@int)
370 477 310 if $i
409 230 552 if (@rtime == 7)
413 547 235 if (@rtime >= 6)
414 371 176 if ($m) { }
421 685 97 if (@rtime >= 5)
422 329 356 if ($w) { }
423 226 103 if ($m) { }
433 727 55 if (@rtime >= 4)
434 528 199 if ($d) { }
435 226 302 if ($w) { }
247 55 elsif ($m) { }
447 766 16 if (@rtime >= 3)
450 771 11 if (@rtime >= 2)
453 771 11 if (@rtime)
479 977 3795 unless $vtype
481 1 3794 if ($f and not $f =~ /$rfieldrx/)
490 73 3785 if ($vals =~ /$rrangerx/) { }
494 1 72 if $err
497 0 72 if $err
499 66 6 if ($num1 > 0 and $num2 > 0 or $num1 < 0 and $num2 < 0) { }
501 2 64 if ($num1 > $num2)
514 176 3609 if $err
534 591 11 if (@rtime)
541 6 3688 if (ref $tmp) { }
558 596 6 unless $slow
560 436 166 if (@int) { }
581 248 3682 if ($type eq 'y') { }
572 3110 elsif ($type eq 'm') { }
670 2440 elsif ($type eq 'w') { }
635 1805 elsif ($type eq 'd') { }
614 1191 elsif ($type eq 'h') { }
582 248 0 if ($vtype eq "y")
583 16 232 if ($num < 0 or $num > 9999)
590 404 168 if ($vtype eq "moy")
591 34 370 if ($num < 1 or $num > 12)
598 103 567 if ($vtype eq 'woy') { }
235 332 elsif ($vtype eq 'wom') { }
599 22 81 if ($num == 0 or $num > 53 or $num < -53)
605 31 204 if ($num == 0 or $num > 5 or $num < -5)
613 190 445 if ($vtype eq 'dow') { }
245 200 elsif ($vtype eq 'dom') { }
55 145 elsif ($vtype eq 'doy') { }
614 36 154 if ($num < 1 or $num > 7)
620 20 225 if ($num == 0 or $num > 31 or $num < -31)
626 14 41 if ($num == 0 or $num > 366 or $num < -366)
633 614 0 if ($vtype eq "time")
634 1 613 if ($num < 0 or $num > 23)
641 1191 0 if ($vtype eq "time")
642 3 1188 if ($num < 0 or $num > 59)
661 128 32 unless $string =~ /$rx/
668 16 16 if (defined $day_name or defined $day_abb)
669 16 0 if (defined $day_name) { }
677 8 24 if (defined $mon_name or defined $mon_abb)
678 8 0 if (defined $mon_name) { }
685 14 18 if (defined $nth)
692 16 16 if (defined $dow) { }
16 0 elsif (defined $day) { }
693 8 8 if (defined $mmm) { }
694 2 6 if (defined $last) { }
4 2 elsif (defined $nth) { }
708 2 6 if (defined $last) { }
4 2 elsif (defined $nth) { }
723 8 8 if (defined $month) { }
724 4 4 if (defined $nth) { }
2 2 elsif (defined $last) { }
738 2 6 if (defined $nth) { }
4 2 elsif (defined $n) { }
755 18 14 if (defined $y)
771 0 679 if (ref $date_or_string eq 'Date::Manip::Date') { }
0 679 elsif (ref $date_or_string) { }
781 0 679 if ($err)
793 766 253 unless defined $start
802 84 253 unless defined $end
810 0 173 unless defined $base
818 0 309 unless @flags
822 309 0 if (@flags == 1)
828 0 309 if (@flags and $flags[0] eq "+")
831 0 0 if @tmp
837 171 151 if $flag =~ /^([pn][dt][1-7]|wd[1-7]|[fb][dw]\d+|cw[dnp]|[npd]wd|[in]bd|[in]w[1-7]|easter)$/
850 1060 1037 unless $n
852 2011 86 if exists $self->{'data'}{'dates'}{$n}
855 0 86 if $err
858 2 84 if exists $self->{'data'}{'dates'}{$n}
862 4 80 if ($self->{'data'}{'noint'})
866 2 78 if ($self->{'data'}{'slow'}) { }
871 2 2 if exists $self->{'data'}{'dates'}{$n}
872 2 0 if ($n >= 0) { }
881 74 4 if ($n >= 0) { }
895 0 8 if $err
899 5 3 unless (defined $self->{'data'}{'curr'})
907 1 4 if ($self->{'data'}{'noint'})
915 2 2 if (defined $self->{'data'}{'start'} and defined $self->{'data'}{'end'}) { }
919 1 1 if $self->{'err'} or not defined $n
933 3 6 if ($self->{'data'}{'noint'})
935 1 2 unless exists $self->{'data'}{'dates'}{$self->{'data'}{'curr'}}
938 0 8 if $e
939 6 2 if defined $d
947 0 11 if $err
951 5 6 unless (defined $self->{'data'}{'curr'})
959 1 4 if ($self->{'data'}{'noint'})
968 2 2 if (defined $self->{'data'}{'start'} and defined $self->{'data'}{'end'}) { }
972 1 1 if $self->{'err'} or not defined $n
986 6 5 if ($self->{'data'}{'noint'})
988 2 4 unless exists $self->{'data'}{'dates'}{$self->{'data'}{'curr'}}
991 0 9 if $e
992 8 1 if defined $d
1004 737 444 if $start2 or $end2
1005 499 682 unless $unmod
1011 735 446 if (defined $start2 and defined $end2) { }
1019 7 1174 if $err
1026 737 437 if ($tmp_limits)
1045 1 1173 if $self->{'err'}
1047 0 1173 if $self->{'err'}
1049 1068 105 if (defined $first and defined $last)
1052 1995 55 if defined $date
1058 737 436 if ($tmp_limits)
1079 0 1286 if $self->err
1084 736 550 if (defined $start2) { }
369 181 elsif (defined $self->{'data'}{'start'}) { }
1085 54 682 if (ref $start2 eq 'Date::Manip::Date') { }
682 0 elsif (not ref $start2) { }
1093 0 736 if $start->err
1096 0 369 if $start->err
1099 736 550 if (defined $end2) { }
369 181 elsif (defined $self->{'data'}{'end'}) { }
1100 54 682 if (ref $end2 eq 'Date::Manip::Date') { }
682 0 elsif (not ref $end2) { }
1108 0 736 if $end->err
1111 0 369 if $end->err
1114 227 1059 if (defined $self->{'data'}{'base'})
1116 0 227 if $base->err
1121 148 1138 if ($self->{'data'}{'noint'})
1122 137 11 if ($self->{'data'}{'noint'} == 1)
1128 0 230 unless defined $date
1132 0 137 if $n == 0
1134 5 132 if (defined $start and defined $end) { }
1138 4 3 if ($start->cmp($date) <= 0 and $end->cmp($date) >= 0)
1146 4 4 if ($start->cmp($date) <= 0 and $end->cmp($date) >= 0)
1166 1100 38 if ($start and $end) { }
7 31 elsif ($range_required) { }
1167 0 1100 if $start->cmp($end) == 1
1176 1131 0 if (defined $self->{'data'}{'BASE'})
1178 0 1131 if $base->err
1194 120 1011 if defined $self->{'data'}{'BASE'}
1199 171 840 if (defined $self->{'data'}{'base'}) { }
840 0 elsif (defined $start2) { }
0 0 elsif (defined $self->{'data'}{'start'}) { }
1221 0 1011 if ($n == 0) { }
872 139 elsif ($n == 1) { }
78 61 elsif ($n == 2) { }
19 42 elsif ($n == 3) { }
31 11 elsif ($n == 4) { }
5 6 elsif ($n == 5) { }
0 6 elsif ($n == 6) { }
1265 2864 122 if exists $dmb->{'data'}{'rx'}{'recur'}{$rx}
1267 28 94 if ($rx eq 'std') { }
28 66 elsif ($rx eq 'rfield' or $rx eq 'rnum' or $rx eq 'rrange') { }
22 44 elsif ($rx eq 'each') { }
22 22 elsif ($rx eq 'ignore') { }
22 0 elsif ($rx eq 'every') { }
1404 3913 137 if defined $date
1407 3281 769 if ($n <= 1) { }
448 321 elsif ($n == 2) { }
100 221 elsif ($n == 3) { }
133 88 elsif ($n == 4) { }
33 55 elsif ($n == 5) { }
0 55 elsif ($n == 6) { }
55 0 elsif ($n == 7) { }
1413 137 3144 if (@int == 0) { }
1415 0 137 if $err
1420 2480 801 if ($m_empty and $w_empty and $d_empty or not $m_empty and $w_empty) { }
328 473 elsif ($m_empty) { }
1433 26 2454 if $m_empty
1434 54 2426 if $d_empty
1437 0 2480 if $err
1442 0 2549 if $err
1451 151 177 if ($w_empty) { }
49 128 elsif ($d_empty) { }
1459 0 171 if $err
1474 0 49 if $err
1488 0 128 if $err
1492 0 164 if $err
1512 0 473 if $err
1514 76 397 if ($d_empty) { }
1518 0 397 if $err
1526 0 639 if $err
1543 261 187 if ($w_empty) { }
1550 39 222 if $d_empty
1553 0 261 if $err
1565 51 136 if ($d_empty) { }
1569 0 136 if $err
1575 0 187 if $err
1600 35 65 if ($d_empty) { }
1604 0 65 if $err
1612 0 112 if $dow < $fdow
1655 3962 88 if ($n <= 4)
1657 0 3962 if $err
1662 3995 55 if ($n <= 5)
1664 0 3995 if $err
1669 3995 55 if ($n <= 6)
1671 0 3995 if $err
1677 3832 218 if @date
1684 2156 1894 if (@flags)
1697 56 2287 if ($flag =~ /^([pn])([dt])([1-7])$/) { }
427 1860 elsif ($flag =~ /^([fb])([dw])(\d+)$/) { }
243 1617 elsif ($flag eq 'ibd' or $flag eq 'nbd') { }
99 1518 elsif ($flag =~ /^([in])w([1-7])$/) { }
9 1509 elsif ($flag =~ /^wd([1-7])$/) { }
166 1343 elsif ($flag eq 'nwd') { }
10 1333 elsif ($flag eq 'pwd') { }
21 1312 elsif ($flag eq 'easter') { }
686 626 elsif ($flag eq 'dwd' and $obj->__is_business_day([$y, $m, $d, $h, $mn, $s], 0)) { }
1699 46 10 $forw eq 'p' ? :
1700 38 18 $today eq 'd' ? :
1706 78 349 $prev eq 'b' ? :
1707 18 409 $business eq 'w' ? :
1709 18 409 if ($business) { }
1720 113 130 if ($flag eq "ibd" and not $bd or $flag eq "nbd" and $bd)
1728 99 0 $is eq 'i' ? :
1730 85 14 if ($is and $dow != $currdow or not $is and $dow == $currdow)
1739 7 2 if ($dow != $currdow)
1744 7 0 if ($dow > $currdow) { }
0 0 elsif ($dow < $currdow) { }
1754 78 88 unless ($obj->__is_business_day([$y, $m, $d, $h, $mn, $s], 0))
1760 5 5 unless ($obj->__is_business_day([$y, $m, $d, $h, $mn, $s], 0))
1774 608 18 if ($flag eq 'cwd' or $flag eq 'dwd') { }
9 9 elsif ($flag eq 'cwn') { }
9 0 elsif ($flag eq 'cwp') { }
1775 608 0 if ($dmb->_config('tomorrowfirst')) { }
1799 396 343 if ($obj->__is_business_day(\@d, 0))
1812 230 113 if ($obj->__is_business_day(\@d, 0))
1823 1994 198 if ($keep)
1841 1 4038 if ($obj->err) { }
1856 3855 3913 if exists $self->{'data'}{'idate'}{$n}
1862 999 2914 if ($n == 0) { }
1871 1725 1189 $n > 0 ? :
1877 24 3889 if ($self->{'data'}{'slow'})
1879 14 10 if ($n > 0) { }
5 5 elsif ($n < 0) { }
1896 24 3889 if ($self->{'data'}{'slow'}) { }
1898 4 20 if (not @date) { }
4 16 elsif ($n == 0) { }
11 5 elsif ($n > 0) { }
1908 4 10 unless defined $self->{'data'}{'idate'}{$i}[2]
1912 1 10 unless defined $n0
1917 1 4 unless defined $self->{'data'}{'idate'}{$i}[1]
1921 1 4 unless defined $n1
1947 24 3889 if ($self->{'data'}{'slow'}) { }
1960 1199 1152 if defined $self->{'data'}{$op}
1969 3 1149 if ($self->{'data'}{'noint'} == 2)
1979 2 5 unless exists $self->{'data'}{'dates'}{$i}
1981 4 1 if ($date->cmp($start) == -1) { }
0 1 elsif ($date->cmp($end) == 1) { }
1997 1 2 if (defined $first)
2001 0 4 unless exists $self->{'data'}{'dates'}{$i}
2003 1 3 if ($date->cmp($end) == 1) { }
2044 4 1145 if ($self->{'data'}{'slow'})
2054 0 4 if ($unmod) { }
2057 0 0 if ($n > $maxatt)
2064 0 0 if (defined $date) { }
2066 0 0 if $date->cmp($start) < 0
2076 0 9 if ($n > $maxatt)
2083 8 1 if (defined $ptr) { }
2085 8 0 if (defined $date) { }
2087 4 4 if $date->cmp($start) < 0
2101 0 4 if ($unmod) { }
2104 0 0 if ($n > $maxatt)
2111 0 0 if (defined $date) { }
2113 0 0 if $date->cmp($start) >= 0
2124 0 11 if ($n > $maxatt)
2131 10 1 if (defined $ptr) { }
2133 10 0 if (defined $date) { }
2135 4 6 if $date->cmp($start) >= 0
2148 4 0 if (defined $date and $date->cmp($start) >= 0)
2160 0 4 if ($unmod) { }
2163 0 0 if ($n > $maxatt)
2170 0 0 if (defined $date) { }
2172 0 0 if $date->cmp($end) > 0
2183 0 0 if (defined $date)
2192 0 14 if ($n > $maxatt)
2199 12 2 if (defined $ptr) { }
2201 12 0 if (defined $date) { }
2203 4 8 if $date->cmp($end) > 0
2217 0 17 unless exists $self->{'data'}{'dates'}{$i}
2219 0 17 unless defined $date
2220 4 13 if $date->cmp($end) > 0
2226 0 4 if not defined $last or $last < $first
2247 1145 0 $delta ? :
2249 1039 106 $op eq 'first' ? :
2252 1145 0 $len ? :
2258 739 406 if ($unmod) { }
2261 0 1492 if ($n > $maxatt)
2268 1492 0 if (defined $date) { }
2270 739 753 if $date->cmp($start) < 0
2281 1 884 if ($n > $maxatt)
2288 816 196 if (exists $self->{'data'}{'dates'}{$i}) { }
2290 816 0 if (defined $date) { }
2292 405 411 if $date->cmp($start) < 0
2307 739 405 if ($unmod) { }
2310 0 1478 if ($n > $maxatt)
2317 1478 0 if (defined $date) { }
2319 739 739 if $date->cmp($start) >= 0
2330 0 839 if ($n > $maxatt)
2337 872 91 if (exists $self->{'data'}{'dates'}{$i}) { }
2339 872 0 if (defined $date) { }
2341 405 467 if $date->cmp($start) >= 0
2359 739 405 if ($unmod) { }
2362 0 1478 if ($n > $maxatt)
2369 1478 0 if (defined $date) { }
2371 739 739 if $date->cmp($end) > 0
2383 0 1462 if ($n > $maxatt)
2390 157 1544 unless exists $self->{'data'}{'dates'}{$i}
2392 1544 0 if (defined $date) { }
2394 405 1139 if $date->cmp($end) >= 0
2407 739 405 if ($unmod) { }
2410 627 112 if exists $self->{'data'}{'dates'}{$first} and defined $self->{'data'}{'dates'}{$first}
2412 112 0 if $first > $last
2417 627 0 if exists $self->{'data'}{'dates'}{$last} and defined $self->{'data'}{'dates'}{$last}
2425 405 2 if exists $self->{'data'}{'dates'}{$first} and defined $self->{'data'}{'dates'}{$first} and $self->{'data'}{'dates'}{$first}->cmp($start) >= 0
2427 0 2 if $first > $last
2433 405 456 if exists $self->{'data'}{'dates'}{$last} and defined $self->{'data'}{'dates'}{$last} and $self->{'data'}{'dates'}{$last}->cmp($end) <= 0
2438 98 934 if not defined $last or $last < $first
2468 10839 1311 if (ref $val) { }
2470 3550 7063 if $#tmp == -1 or $#tmp == 0 and not ref $tmp[0] and not $tmp[0]
2503 3962 15826 if ($type eq 'h') { }
3995 11831 elsif ($type eq 'mn') { }
3995 7836 elsif ($type eq 's') { }
137 7699 elsif ($type eq 'y') { }
2953 4746 elsif ($type eq 'm') { }
49 4697 elsif ($type eq 'week_of_year') { }
164 4533 elsif ($type eq 'dow_of_year') { }
826 3707 elsif ($type eq 'dow_of_month') { }
171 3536 elsif ($type eq 'day_of_year') { }
2810 726 elsif ($type eq 'day_of_month') { }
726 0 elsif ($type eq 'day_of_week') { }
2515 8 205 if not ref $y and $y == 0
2534 15 149 if ($dow > $dow0) { }
119 30 elsif ($dow < $dow0) { }
2543 121 43 if ($dow1 > $dow) { }
15 28 elsif ($dow1 < $dow) { }
2562 185 641 if ($dow > $dow0) { }
504 137 elsif ($dow < $dow0) { }
2571 526 300 if ($dow1 > $dow) { }
180 120 elsif ($dow1 < $dow) { }
2598 0 19788 if ($err)
2626 24 20313 if (ref $val) { }
2629 24 0 if ($allowneg) { }
2630 0 0 if $val1 >= 0 and $val1 < $min || $val1 > $absmax or $val2 >= 0 and $val2 < $min || $val2 > $absmax
2633 0 24 if $val1 <= 0 and $val1 < -$absmax || $val1 > -$min or $val2 <= 0 and $val2 < -$absmax || $val2 > -$min
2638 0 0 if $val1 < $min or $val1 > $absmax or ($val2 < $min or $val2 > $absmax)
2644 0 24 if $val1 <= 0 and $val2 <= 0 and $val1 > $val2 or $val1 >= 0 and $val2 >= 0 and $val1 > $val2
2651 0 24 if $val1 < 0
2652 24 0 if $val2 < 0
2654 0 24 if $val1 < $min
2655 0 24 if $val2 > $max
2657 4 20 if $val1 > $val2
2663 4193 16120 if ($allowneg) { }
2664 0 3792 if $val >= 0 and $val < $min || $val > $absmax
2666 0 401 if $val <= 0 and $val < -$absmax || $val > -$min
2669 0 16120 if $val < $min or $val > $absmax
2677 401 19912 if ($val < 0) { }
2683 388 19925 if $ret > $max or $ret < $min