Branch Coverage

blib/lib/DateTime/Precise.pm
Criterion Covered Total %
branch 230 338 68.0


line true false branch
50 0 58 $_[2] ? :
51 1 66 $_[2] ? :
53 0 27 $_[2] ? :
235 25 75 if $year % 4 == 0
264 0 0 if ($$self[6] == 0 and $$self[5] == 0 and $$self[4] == 0 and $$self[3] == 0)
269 0 0 if ($$self[2] < 1)
272 0 0 if ($$self[1] < 1)
289 3 0 if $_[1] >= 1 and $_[1] <= 12 and $_[2] >= 1 and $_[2] <= DaysInMonth($_[1], $_[0]) and $_[3] >= 0 and $_[3] <= 24 and $_[4] >= 0 and $_[4] <= 59 and $_[5] >= 0 and $_[5] <= 59 and $_[6] >= 0
306 1 161 if ($$self[6] < 0 or $$self[6] >= 1 or int $$self[5] != $$self[5])
319 31 1 if ($fraction < 0)
323 31 1 if ($fraction >= 1)
379 420 194 if ($$self[2] > DaysInMonth($$self[1], $$self[0]))
384 1 193 if ($$self[2] < 1)
398 3 0 unless $a[6]
399 3 0 if (IsOkDate(@a)) { }
429 0 135 if ($in =~ /$DateTime::Precise::is_internal_format_re/o) { }
447 0 135 if $i != 3 and $i != 6
449 68 67 if ($i == 6)
458 135 0 if (@ret) { }
472 0 179 unless defined $fs
509 0 114 unless defined $fs
537 99 171 if ($mo > 2) { }
572 62 0 if ($m < 10) { }
579 0 62 if $y <= 0
587 342 19 if ($sec == int $sec) { }
591 2 17 if ($sec >= 10) { }
627 8 136 if (@_ == 0) { }
135 1 elsif (@_ == 1) { }
1 0 elsif (@_ > 1) { }
636 2 133 if ($arg =~ /$DateTime::Precise::is_internal_format_re/o) { }
1 132 elsif ($arg =~ /^\d+(\.\d*)?$/) { }
638 0 2 unless @$self
643 0 132 unless @$self
646 0 1 unless $self->set_time(@_)
699 0 1 unless defined $template
725 0 6 unless defined $template
730 0 6 unless @keys
733 0 6 unless $DateTime::Precise::SET_MASK{$keys[0]} & 1
737 0 20 if $DateTime::Precise::SET_MASK{$key} & 1
745 24 2 unless ($DateTime::Precise::SET_MASK{$key} & 2)
746 1 23 unless @values
752 25 0 unless ($arg =~ /[a-zA-Z]/)
754 23 2 if $DateTime::Precise::SET_MASK{$key} & 4
759 6 19 if ($DateTime::Precise::SET_MASK{$key} & 1)
761 2 4 if $key eq 'N'
763 0 4 if $key eq 'G'
765 0 4 if ($key eq 's')
771 4 0 if ($key eq 'Y')
778 0 4 IsLeapYear($arg) ? :
783 0 0 if ($key eq 'J')
793 16 3 if ($DateTime::Precise::SET_MASK{$key} & 8)
804 3 0 if ($key eq 'B')
823 3 0 if defined $strftime_values{$char}
842 54 0 if $diff < 0
851 18 36 if ($jan4week1)
852 14 4 if $diff > 3
857 3 5 $previous ? :
8 46 if $doy < $first_weekday
885 12 6 $h % 12 == 0 ? :
12 6 $h % 12 == 0 ? :
4 14 $week_day == 0 ? :
1038 1 133 if ($in)
1040 1 0 if @a
1057 3 0 if (defined $dt)
1059 3 0 if (@a)
1064 3 0 if ($ret) { }
1087 0 10 unless (defined $y)
1093 0 10 unless (defined $j)
1099 0 10 if $j < 1
1100 4 6 $leap ? :
0 10 if $j >= ($leap ? 367 : 366)
1109 4 6 if $leap
1117 10 30 if ($j <= $days_in_month[0]) { }
1156 0 62 unless (defined $sdn)
1182 0 1 unless defined $time
1208 10 3 unless defined $time
1227 0 1 unless (defined $gps_week)
1232 0 1 unless (defined $gps_seconds)
1277 5 42 if (@_)
1292 5 42 if (@_)
1308 5 42 if (@_)
1324 5 42 if (@_)
1340 5 42 if (@_)
1356 66 42 if (@_)
1392 0 8 if ($DateTime::Precise::USGSMidnight)
1404 49 118 if ($char eq '%') { }
1407 0 49 if ($mod eq '%') { }
1413 11 38 unless $mod =~ /[a-zA-Z]/
1416 8 41 if ($type eq 's') { }
8 33 elsif ($type eq 'm') { }
8 25 elsif ($type eq 'h') { }
8 17 elsif ($type eq 'D') { }
8 9 elsif ($type eq 'M') { }
8 1 elsif ($type eq 'Y') { }
0 1 elsif ($type eq 'W') { }
1 0 elsif ($type eq 'w') { }
0 0 elsif ($type eq 'E') { }
1431 0 0 if $mo > 9
1440 0 49 if ($mod eq '*') { }
2 47 elsif ($mod eq '~') { }
8 39 elsif ($mod eq '^') { }
1 38 elsif ($mod eq '-') { }
1441 0 0 if $type eq 'M'
1442 0 0 if $type eq 'w'
1444 1 1 if $type eq 'M'
1445 1 1 if $type eq 'w'
1451 0 38 if $type eq 'Y'
1462 0 8 if ($usgs_midnight_fix_applied)
1490 28 60 if ($format =~ s/^\s+//) { }
42 18 elsif ($format =~ s/^%(.)(.)//) { }
18 0 elsif ($format =~ s/^(.)//) { }
1495 3 39 if ($1 eq '*' or $1 eq '~') { }
1497 0 3 unless $type eq 'M'
1498 2 1 if ($mod eq '~') { }
1505 33 6 unless ($mod =~ /\d/)
1510 6 33 if ($type eq 'c') { }
1 32 elsif ($type eq 'p') { }
1511 0 6 $mod ? :
1516 6 26 $mod ? :
1532 0 7 unless @ghost
1538 3 4 unless exists $tags{'s'}
1572 0 7 unless ref $msg
1576 0 7 if (exists $tags{'U'}) { }
1 6 elsif (exists $tags{'u'}) { }
0 6 elsif (exists $tags{'E'}) { }
1581 0 0 unless $tags{'E'} =~ /^\d{14}$/
1583 0 0 if (@a) { }
1590 0 6 unless $tags{'s'} >= 0 and $tags{'s'} < 60
1591 0 6 unless $tags{'m'} >= 0 and $tags{'m'} < 60
1593 0 6 if (exists $tags{'p'} and $tags{'p'} =~ /p/i) { }
2 4 elsif ($tags{'h'} == 12) { }
1594 0 0 unless $tags{'h'} == 12
1596 1 1 if defined $tags{'p'}
1598 0 6 unless $tags{'h'} >= 0 and $tags{'h'} <= 24
1601 3 3 if $tags{'M'} =~ /[^\d]/
1602 0 6 unless $tags{'M'} >= 1 and $tags{'M'} <= 12
1604 0 6 if (defined $tags{'W'})
1605 0 0 if defined $tags{'Y'}
1607 0 0 if $tags{'M'} < 9
1609 1 5 if ($tags{'Y'} =~ /^\d\d$/) { }
1613 0 5 unless $tags{'Y'} >= 100 and $tags{'Y'} < 10000
1616 0 6 unless $tags{'D'} >= 1 and $tags{'D'} <= DaysInMonth($tags{'M'}, $tags{'Y'})
1620 0 6 unless defined $tags{'D'} and defined $tags{'M'} and defined $tags{'Y'}
1659 27 1 unless defined $unit
1661 4 24 if ($increment == 0)
1667 0 24 if $unit < 2
1676 17 52 if (my $int = int $inc)
1688 20 4 if $frac == 0
1713 3 0 if (defined $increment) { }
1714 0 3 if ($increment == 0)
1721 0 3 unless (defined $unit)
1731 3 0 if ($unit == 0 or $unit == 1) { }
1749 0 1 unless defined $unit
1754 1 0 if ($function == 2)
1755 0 1 $$self[$unit] > $_half_unit[$unit] ? :
1762 0 1 if ($function == 1)
1782 1 56 if ($self < $other)
1792 2 55 if ($bot[1] > $top[1])
1799 1 56 if ($neg)
1831 0 4 if $func eq 'DESTROY'
1834 0 4 unless (exists $_func_name{$func} and exists $_unit_name{$unit})
1837 3 1 if ($func eq 'inc') { }
0 1 elsif ($func eq 'dec') { }
0 1 elsif ($func eq 'floor') { }
0 1 elsif ($func eq 'ceil') { }
1 0 elsif ($func eq 'round') { }
1841 0 0 unless defined $increment
1868 0 5 if "$n" > 10000000000
1882 57 1 if ("$n" > 10000000000) { }