Branch Coverage

blib/lib/Date/Object.pm
Criterion Covered Total %
branch 211 618 34.1


line true false branch
43 0 913 if (not defined &Object and @Date::Object::ISA > 1)
45 0 0 if defined &{"${ISA_i}::new";}
47 0 913 if ref $class
49 913 0 unless ref $this and UNIVERSAL::isa($this, $class)
53 913 0 if ($Date::Object::CLASS_HPLOO{'ATTR'})
54 913 0 defined &Object ? :
55 913 0 if (ref $ret_this and UNIVERSAL::isa($ret_this, $class)) { }
0 0 elsif ($ret_this == $undef) { }
57 913 0 if ($Date::Object::CLASS_HPLOO{'ATTR'} and UNIVERSAL::isa($this, 'HASH'))
63 1826 0 if ($Date::Object::CLASS_HPLOO{'ATTR'})
65 23738 23738 unless exists $$this{$Key}
68 0 0 unless defined *{'Class::HPLOO::Base::';}
70 0 0 if $prev_pack eq 'Class::HPLOO::Base'
72 0 0 $sub0 =~ /^(.*?(?:::)?$sub)\::$sub$/ ? :
73 0 0 if $sub_is_new_hploo and $prev_pack and !ref($_[0]) && $_[0] ne $prev_pack && !UNIVERSAL::isa($_[0], $prev_pack) || ref $_[0] && !UNIVERSAL::isa($_[0], $prev_pack)
74 0 0 if (defined @{"${pack}::ISA";})
75 0 0 $sub_is_new_hploo ? :
77 0 0 if ($sub0 ne $isa_sub and not ref $_[0] and $isa_sub =~ /^(.*?(?:::)?$sub_name)\::$sub_name$/)
79 0 0 if ($sub0 eq $isa_sub and UNIVERSAL::isa($_[0], $pack))
82 0 0 if ($sub_is_new_hploo)
83 0 0 if (UNIVERSAL::isa($pk, 'Class::HPLOO::Base')) { }
88 0 0 if $isa_sub
89 0 0 if $isa_sub and defined &$isa_sub and $sub0 ne $isa_sub
90 0 0 $sub_is_new_hploo ? :
91 0 0 if "${pack}::$sub" eq $sub0
101 0 0 if $$stack{$isa_i}++
102 0 0 if $isa_i eq $class_end
104 0 0 $found ? :
0 0 if $only_stak
111 0 0 if $count > 100
113 0 0 if (UNIVERSAL::isa($pack, 'Class::HPLOO::Base')) { }
114 0 0 $sub eq 'new' ? :
118 0 0 if ($look_deep or not defined &$isa_sub)
120 0 0 if $isa_i eq $pack or $isa_i eq 'Class::HPLOO::Base'
121 0 0 if $isa_i eq 'UNIVERSAL'
123 0 0 if $isa_sub
124 0 0 unless defined &$isa_sub
130 913 0 if $ISA_i eq 'Class::HPLOO::Base'
134 0 0 if defined &$sub
135 0 0 if UNIVERSAL::isa($ret, $class)
140 913 0 if $ISA_i eq 'Class::HPLOO::Base'
144 0 0 if defined &$sub
169 0 26 unless $type =~ /^(?:(?:ref)|(?:ref)?(?:array|hash)(?:boolean|integer|floating|string|sub_\w+|any|&\w+)|(?:ref)?(?:array|hash)|(?:array|hash)?(?:boolean|integer|floating|string|sub_\w+|any|&\w+))$/
170 0 26 if ($type eq 'any' and $type0 =~ /^((?:ref\s*)?(?:array|hash) )?(\w+(?:(?:::|\.)\w+)*)$/)
173 0 0 if $tp2 =~ /^(?:obj|object)$/i
176 0 26 $type =~ /^(?:array|hash)/ ? :
177 26 0 unless $Date::Object::CLASS_HPLOO{'ATTR'}{$name}
181 15 11 if ($type =~ /^sub_(\w+)$/) { }
187 0 11 $parse_ref ? :
194 24 2 unless defined &{"set_$name";}
0 0 unless (defined $$this{'d'})
0 0 unless (defined $$this{'date'})
0 0 unless (defined $$this{'date_zone'})
0 0 unless (defined $$this{'day'})
0 0 unless (defined $$this{'dmy'})
0 0 unless (defined $$this{'h'})
0 0 unless (defined $$this{'hms'})
0 0 unless (defined $$this{'hour'})
0 0 unless (defined $$this{'isdst'})
0 0 unless (defined $$this{'m'})
0 0 unless (defined $$this{'mdy'})
0 0 unless (defined $$this{'min'})
0 0 unless (defined $$this{'mo'})
0 0 unless (defined $$this{'month'})
0 0 unless (defined $$this{'s'})
0 0 unless (defined $$this{'sec'})
0 0 unless (defined $$this{'time'})
0 0 unless (defined $$this{'wday'})
0 0 unless (defined $$this{'y'})
0 0 unless (defined $$this{'yday'})
0 0 unless (defined $$this{'year'})
0 0 unless (defined $$this{'ymd'})
0 0 unless (defined $$this{'z'})
0 0 unless (defined $$this{'zone_gmt'})
198 26 0 unless defined &{"get_$name";}
0 0 if defined &d
0 0 if defined &date
0 0 if defined &date_zone
0 0 if defined &dmy
0 0 if defined &h
0 0 if defined &hms
0 0 if defined &m
0 0 if defined &mdy
0 0 if defined &mo
0 0 if defined &s
0 0 if defined &serial
0 0 if defined &y
0 0 if defined &ymd
0 0 if defined &z
0 0 if defined &zone_gmt
205 13695 10043 if ($$this{'tp'} =~ /^sub_(\w+)$/)
207 1 13694 unless (ref $$CLASS_HPLOO{'OBJ_TBL'})
210 0 1 if (not $@) { }
221 11077 0 if ($ref_changed)
222 912 10165 if (ref $$ref_changed ne 'HASH')
224 0 11077 if ($$this{'pr'}) { }
225 0 0 $$this{'tp'} =~ /^ref/ ? :
232 14 4772 if ($$this{'tp'} =~ /^sub_(\w+)$/) { }
236 14 0 if defined &$sub
238 0 4772 if ($$this{'tp'} =~ /^(?:ref)?(?:array|hash)/)
240 0 0 if ($ref_changed)
241 0 0 if (ref $$ref_changed ne 'HASH')
248 0 11077 if ($type eq 'any') { }
0 11077 elsif ($type eq 'string') { }
0 11077 elsif ($type eq 'boolean') { }
11077 0 elsif ($type eq 'integer') { }
0 0 elsif ($type eq 'floating') { }
0 0 elsif ($type =~ /^sub_(\w+)$/) { }
0 0 elsif ($type =~ /^&(\w+)$/) { }
0 0 elsif ($type eq 'ref') { }
0 0 elsif ($type eq 'array') { }
0 0 elsif ($type eq 'hash') { }
0 0 elsif ($type eq 'refarray') { }
0 0 elsif ($type eq 'refhash') { }
0 0 elsif ($type =~ /^array(&?[\w:]+)/) { }
0 0 elsif ($type =~ /^hash(&?[\w:]+)/) { }
0 0 elsif ($type =~ /^refarray(&?[\w:]+)/) { }
0 0 elsif ($type =~ /^refhash(&?[\w:]+)/) { }
0 0 elsif ($type =~ /^\w+(?:::\w+)*$/) { }
252 0 0 if $_[0] =~ /^(?:false|null|undef)$/i
253 0 0 if $_[0]
264 0 0 unless ($val =~ /^\d+\.\d+$/)
270 0 0 if defined &$sub
273 0 0 if defined &$sub
276 0 0 if ref $val
285 0 0 if ref $val eq 'ARRAY'
288 0 0 if ref $val eq 'HASH'
292 0 0 $tp =~ /^(?:any|string|boolean|integer|floating|sub_\w+|&\w+)$/ ? :
293 0 0 if ($accept_undef) { }
297 0 0 unless CLASS_HPLOO_ATTR_TYPE($class, $tp, $_)
307 0 0 if ref $_[0] ne 'ARRAY'
313 0 0 if ref $_[0] ne 'HASH'
318 0 0 UNIVERSAL::isa($_[0], $type) ? :
330 19 0 ref $_[0] ? :
331 30 0 ref $_[0] ? :
344 913 0 ref $_[0] ? :
349 861 52 if ($#_ == 0 and ref $_[0] eq 'ARRAY')
354 10 903 if (not @_) { }
31 872 elsif ($#_ == 0 or $#_ == 1) { }
356 10 21 if (ref $_[0] and UNIVERSAL::isa($_[0], 'Date::Object')) { }
1 20 elsif (length $_[0] >= 14 and $_[0] =~ /^\d+$/) { }
1 19 elsif ($_[0] =~ /^\s*(\d+)\D+(\d+)\D+(\d+)(?:\s+(\d\d?)\D+(\d\d?)(?:\D+(\d\d?))?)?/) { }
19 0 elsif ($_[0] >= 0) { }
358 7 3 if $zone eq ''
367 0 1 if ($_[1] =~ /mdy/i) { }
0 1 elsif ($_[1] =~ /dmy/i) { }
1 0 elsif ($_[1] =~ /ymd/i) { }
386 0 21 $#_ >= 6 ? :
21 851 if ($zone eq '')
390 0 912 if $time == undef
394 889 23 if ($zone ne '') { }
399 0 839 ref $_[0] ? :
407 0 8 ref $_[0] ? :
417 0 13 ref $_[0] ? :
427 0 1 ref $_[0] ? :
435 0 1 if ($zone > 1200) { }
1 0 elsif ($zone == 1200) { }
448 1 0 ref $_[0] ? :
456 23 0 ref $_[0] ? :
467 2 0 ref $_[0] ? :
473 2 0 if $local_zone eq ''
479 899 0 ref $_[0] ? :
484 8 891 if $zone
495 8 891 if ($zone)
497 0 8 if ($zone == $local_zone) { }
508 4 0 ref $_[0] ? :
514 0 4 if ($zone > 1200) { }
4 0 elsif ($zone == 1200) { }
528 2 0 ref $_[0] ? :
537 2 0 unless defined $y
538 2 0 unless defined $mo
539 0 2 unless defined $d
540 2 0 unless defined $h
541 2 0 unless defined $m
542 2 0 unless defined $s
544 1 1 if ($d > $this->check($mo))
553 8 878 ref $_[0] ? :
558 0 886 if ($zone > 12)
559 0 886 if ($zone < -12)
565 10 8 ref $_[0] ? :
581 904 0 ref $_[0] ? :
584 13 0 ref $_[0] ? :
598 1819 0 ref $_[0] ? :
600 0 0 ref $_[0] ? :
601 0 0 ref $_[0] ? :
603 0 0 ref $_[0] ? :
604 0 0 ref $_[0] ? :
605 0 0 ref $_[0] ? :
606 0 0 ref $_[0] ? :
607 0 0 ref $_[0] ? :
608 0 0 ref $_[0] ? :
610 5 0 ref $_[0] ? :
611 5 0 ref $_[0] ? :
612 5 0 ref $_[0] ? :
613 3 0 ref $_[0] ? :
614 6 0 ref $_[0] ? :
615 6 0 ref $_[0] ? :
616 3 0 ref $_[0] ? :
619 7 0 ref $_[0] ? :
623 0 7 if ($z =~ /^-(\d+)/) { }
7 0 elsif ($z =~ /^[\+]?(\d+)/) { }
631 0 0 ref $_[0] ? :
641 0 0 ref $_[0] ? :
651 0 0 ref $_[0] ? :
661 1 0 ref $_[0] ? :
671 0 0 ref $_[0] ? :
680 3 0 ref $_[0] ? :
686 1 2 if ($months < 0)
693 1 12 if ($mo > 12)
701 1 0 ref $_[0] ? :
707 0 1 if ($months < 0)
714 1 11 if ($mo < 1)
722 2 0 ref $_[0] ? :
730 0 0 ref $_[0] ? :
731 0 0 ref $_[0] ? :
732 0 0 ref $_[0] ? :
733 1 0 ref $_[0] ? :
734 0 0 ref $_[0] ? :
735 1 0 ref $_[0] ? :
738 1800 0 ref $_[0] ? :
747 20 0 ref $_[0] ? :
756 0 1820 ref $_[0] ? :
772 871 949 if $sec < 10
773 859 961 if $min < 10
774 856 964 if $hour < 10
775 1205 615 if $mday < 10
776 1611 209 if $mon < 10
782 878 0 ref $_[0] ? :
799 0 878 if (not $year or $year eq '*' or $year < $year_0)
802 230 648 if ($this->is_leap_year($year))
804 0 878 if (not $mon or $mon eq '*') { }
0 878 elsif ($mon < 1 or $mon > 12) { }
0 878 elsif (not $day or $day eq '*') { }
0 878 elsif ($day < 1 or $day > 31) { }
5 873 elsif ($mon == 2 and $day > 28) { }
0 873 elsif ($day > $this->check($mon)) { }
810 1 4 unless $this->check($year, $mon, $day)
814 11 867 if ($hour eq '') { }
0 867 elsif ($hour eq '*') { }
0 867 elsif ($hour == 24) { }
0 867 elsif ($hour < 0 or $hour > 24) { }
819 11 867 if ($min eq '') { }
0 867 elsif ($min eq '*') { }
0 867 elsif ($min == 60) { }
0 867 elsif ($min < 0 or $min > 60) { }
824 18 860 if ($sec eq '') { }
0 860 elsif ($sec eq '*') { }
0 860 elsif ($sec == 60) { }
0 860 elsif ($sec < 0 or $sec > 60) { }
836 7297 22349 if ($this->is_leap_year($y))
844 185 693 if ($year_bisexto == 1 and $mon > 2)
852 4 874 if $zone
858 881 4792 ref $_[0] ? :
861 0 5673 unless $_[0] =~ /^\d+$/
865 5 5668 if ($#_ == 2)
866 0 5673 if ($#_ == 1)
867 5668 5 if ($#_ == 0)
869 5 5668 if ($#_ > 0) { }
5668 0 elsif ($#_ == 0) { }
870 0 5 if ($year eq '')
871 0 5 if ($month eq '')
872 0 5 if ($day eq '')
876 4 1 if ($this->is_leap_year($year))
878 4 1 if ($day <= $months_days[$month]) { }
882 0 5668 if ($month eq '')
906 30529 0 ref $_[0] ? :
910 0 30529 if $year eq ''
912 0 30529 if ($year == 0) { }
0 30529 elsif ($year % 4000 == 0) { }
512 30017 elsif ($year % 400 == 0) { }
0 30017 elsif ($year % 100 == 0) { }
7019 22998 elsif ($year % 4 == 0) { }
921 6 0 ref $_[0] ? :
932 0 0 ref $_[0] ? :
941 6 0 ref $_[0] ? :
950 0 0 ref $_[0] ? :
959 0 0 ref $_[0] ? :
968 0 0 ref $_[0] ? :
977 0 0 ref $_[0] ? :
985 0 0 ref $_[0] ? :
986 0 0 ref $_[0] ? :
987 2 0 ref $_[0] ? :
988 0 0 ref $_[0] ? :
989 0 0 ref $_[0] ? :
990 0 0 ref $_[0] ? :
991 0 0 ref $_[0] ? :
993 0 0 ref $_[0] ? :
0 0 $r < 0 ? :
994 0 0 ref $_[0] ? :
0 0 $r < 0 ? :
995 2 0 ref $_[0] ? :
1 1 $r < 0 ? :
996 0 0 ref $_[0] ? :
0 0 $r < 0 ? :
997 0 0 ref $_[0] ? :
0 0 $r < 0 ? :
998 0 0 ref $_[0] ? :
0 0 $r < 0 ? :
999 0 0 ref $_[0] ? :
0 0 $r < 0 ? :
1002 27 0 ref $_[0] ? :
1010 5 0 ref $_[0] ? :
1019 0 0 ref $_[0] ? :
1026 0 0 ref $_[0] ? :
1029 0 0 ref $_[0] ? :
1037 0 0 ref $_[0] ? :
1045 0 0 ref $_[0] ? :
1053 1 0 ref $_[0] ? :
1061 1 0 ref $_[0] ? :