Branch Coverage

blib/lib/Time/TZif/POSIX.pm
Criterion Covered Total %
branch 151 172 87.7


line true false branch
67 1 85 unless @_ & 1 and @_ >= 3
73 81 50 if ($key eq 'tz_string') { }
5 45 elsif ($key eq 'name') { }
22 23 elsif ($key eq 'gap_policy') { }
21 2 elsif ($key eq 'overlap_policy') { }
77 2 3 unless valid_tzdb_timezone($v)
82 1 21 unless defined $v and exists $ValidPolicy{$v}
87 1 20 unless defined $v and exists $ValidPolicy{$v}
96 1 78 unless defined $tz_string
114 0 4 unless @_ == 1
119 0 3 unless @_ == 1
124 0 7 unless @_ == 1
129 0 5 unless @_ == 1
134 0 2 unless @_ == 1
139 1 4 unless @_ == 2
142 1 3 unless valid_tzdb_timezone($name)
145 2 1 if (not exists $self->{'name'} or $name ne $self->{'name'})
152 1 3 unless @_ == 2
155 1 2 unless defined $policy and exists $ValidPolicy{$policy}
158 1 1 if ($policy ne $self->{'gap_policy'})
165 1 3 unless @_ == 2
168 1 2 unless defined $policy and exists $ValidPolicy{$policy}
171 1 1 if ($policy ne $self->{'overlap_policy'})
179 0 75 unless $str =~ /\A ([+-]?) ([0-9]{1,2}) (?: [:]([0-9]{2}) (?: [:]([0-9]{2}) )? )? \z/x
182 2 71 unless $h <= 24 and $m <= 59 and $s <= 59
185 23 48 $1 eq '-' ? :
190 0 63 unless $str =~ /\A ([+-]?) ([0-9]{1,3}) (?: [:]([0-9]{2}) (?: [:]([0-9]{2}) )? )? \z/x
193 2 60 unless $h <= 167 and $m <= 59 and $s <= 59
196 1 59 $1 eq '-' ? :
202 63 49 defined $time_str ? :
204 0 109 unless $rule_str =~ /$Rule_Rx/x
207 96 13 if (exists $+{'month'}) { }
6 7 elsif (exists $+{'jday'}) { }
209 2 94 unless $m >= 1 and $m <= 12
211 40 54 $w == 5 ? :
217 2 4 unless $jday >= 1 and $jday <= 365
223 1 6 unless $nday >= 0 and $nday <= 365
232 5 73 unless $str =~ /$POSIX_TZ_Rx/x
240 0 70 unless $std_offset >= -86400 and $std_offset <= 86400
245 9 61 unless defined $m{'dst_name'}
251 2 59 defined $m{'dst_offset'} ? :
253 0 60 unless $dst_offset >= -86400 and $dst_offset <= 86400
267 50 2 if ($t0 <= $t1) { }
298 2 101 if ($r->{'type'} eq 'M' and $r->{'month'} == 12) { }
3 189 elsif ($r->{'type'} ne 'M' and $r->{'day'} >= 359) { }
299 2 0 $r->{'nth'} == -1 ? :
304 5 98 if (defined $max_day)
305 3 2 if $r->{'time'} - $off >= (32 - $max_day) * 86400
310 1 102 if ($r->{'type'} eq 'M' and $r->{'month'} == 1) { }
2 192 elsif ($r->{'type'} ne 'M' and $r->{'day'} <= 7) { }
311 0 1 $r->{'nth'} == -1 ? :
316 3 100 if (defined $min_day)
317 1 2 if $r->{'time'} - $off < -($min_day - 1) * 86400
320 4 99 if $cross_year
332 178 28 if ($rule->{'type'} eq 'M') { }
8 20 elsif ($rule->{'type'} eq 'J') { }
338 5 3 if $doy >= 60 and leap_year($year)
343 0 20 if $doy == 366 and not leap_year($year)
367 8 27 $self->{'cross_year'} ? :
369 48 3 if ($t_start <= $t_end) { }
388 114 0 if ($year_index >= 0 and $year_index < 50) { }
401 11 67 unless exists $self->{'dst_start'}
409 1 68 unless @_ == 2
415 1 10 unless @_ == 2
421 0 50 unless @_ >= 2
427 0 4 unless @_ >= 2
433 0 54 unless (@_ & 1) == 0 and @_ >= 2
439 6 14 if ($key eq 'gap_policy') { }
12 2 elsif ($key eq 'overlap_policy') { }
440 1 5 unless defined $v and exists $ValidPolicy{$v}
445 1 11 unless defined $v and exists $ValidPolicy{$v}
454 3 47 unless exists $self->{'dst_start'}
458 0 47 unless @$times
469 51 41 if ($prev_off < $next_off) { }
41 0 elsif ($prev_off > $next_off) { }
471 10 41 if ($prev_off <= $boundary and $boundary < $next_off)
476 26 15 if $boundary >= $next_off
480 15 26 if ($next_off <= $boundary and $boundary < $prev_off)
485 2 24 if $boundary >= $prev_off
488 0 0 if $boundary >= $prev_off
498 9 16 if ($policy eq 'earlier') { }
9 7 elsif ($policy eq 'later') { }
2 5 elsif ($policy eq 'std') { }
2 3 elsif ($policy eq 'dst') { }
501 1 1 $prev->[1] ? :
504 1 1 $prev->[1] ? :