Branch Coverage

lib/Changes.pm
Criterion Covered Total %
branch 108 226 47.7


line true false branch
75 0 22 unless $self->SUPER::init(@_)
82 0 1 unless (defined $text and length "$text")
88 0 1 if (defined $last and not $self->_is_a($last, "Changes::NewLine"))
99 0 1 unless (defined $text and length "$text")
112 2 2 if (scalar @_ == 1 and $self->_is_a($_[0], 'Changes::Release')) { }
115 0 2 if ($elements->exists($rel))
120 2 0 if (length "$vers")
122 1 1 if $self->_is_a($_, "Changes::Release")
123 0 2 unless $same->is_empty
129 2 0 if (exists $opts->{'version'} and defined $opts->{'version'} and length "$opts->{'version'}")
132 1 1 if $self->_is_a($_, "Changes::Release")
133 0 2 unless $same->is_empty
149 4 17 if (defined $preamble and not $preamble->is_empty)
157 71 0 if $self->_can($_, "as_string")
158 71 0 if (defined $str)
163 2 19 if (defined $epilogue and not $epilogue->is_empty)
185 0 0 if ($self->_is_a($rel, 'Changes::Release')) { }
199 0 0 unless (defined $vers and length "$vers")
201 0 0 if $self->_warnings_is_enabled
204 0 0 if $self->_is_a($_, "Changes::Release")
205 0 0 if ($found->is_empty)
212 0 0 if not $deleted->is_empty
230 44 23 if ($self->_can($_, "freeze"))
251 0 1 unless $f->open("$mode", {"binmode", "utf-8", "autoflush", 1})
256 0 1 unless $self->parse($lines)
268 0 19 unless defined $data and length "$data"
271 0 19 unless $self->parse($lines)
283 0 41 if (defined $defaults)
287 0 0 if defined $defaults->{$opt}
300 0 6 if (defined $defaults)
305 0 0 if (not defined $$opts{"group_$opt"} and exists $$def{"group_$opt"} and defined $$def{"group_$opt"} and length $$def{"group_$opt"})
323 0 25 unless $self->_load_class("Changes::NewLine")
334 2 44 if (defined $defaults)
339 4 0 if (not defined $opts->{$opt} and exists $def->{$opt} and defined $def->{$opt} and length $def->{$opt})
357 0 0 unless $self->_load_class("Changes::Version")
369 0 20 unless $self->_is_array($lines)
385 15 5 unless (defined $Changes::DATETIME_RE)
394 2 125 if ($l =~ /^
34 91 elsif ($l =~ /^
8 83 elsif ($l =~ /^
6 77 elsif ($l =~ /^(?<g_space>[[:blank:]\h]+)(?<data>(?:\[(?<g_name>[^\]]+)\]|(?<g_name_colon>\w[^\:]+)\:))[[:blank:]\h]*(?<g_nl>[\015\012]+)?$/ms) { }
41 36 elsif (defined $release and $l =~ /^(?<c_space1>[[:blank:]\h]*)(?<marker>(?:[^\w[:blank:]\h]|[\_\x{30FC}]))(?<c_space2>[[:blank:]\h]+)(?<c_text>.+?)(?<c_nl>[\015\012]+)?$/ms) { }
4 32 elsif ($l =~ /^(?<space>[[:blank:]\h]+)(?<data>\S+.*?)(?<c_nl>[\015\012]+)?$/ms) { }
27 5 elsif ($l =~ /^(?<space>[[:blank:]\h]*)(?<nl>[\015\012]+)?$/) { }
4 1 elsif ($elements->is_empty) { }
1 0 elsif ($l =~ /^(\S+.*?)(?<nl>[\015\012]+)?$/ms and !($nls->is_empty || defined $epilogue) || defined $epilogue && !defined($release) && !defined($group) && !defined($change) and not $elements->is_empty) { }
405 0 2 unless $self->_load_class("DateTime")
406 0 2 unless $self->_load_class("DateTime::TimeZone")
407 0 2 unless $self->_load_class("DateTime::Format::Strptime")
415 0 2 if ($@)
417 0 0 if ($@ =~ /The[[:blank:]\h]+timezone[[:blank:]\h]+'(?:.*?)'[[:blank:]\h]+could[[:blank:]\h]+not[[:blank:]\h]+be[[:blank:]\h]+loaded/i) { }
419 0 0 if $self->_warnings_is_enabled
424 0 0 if $self->_warnings_is_enabled
437 0 2 if ($@)
439 0 0 if $self->_warnings_is_enabled
459 0 2 if ($@)
461 0 0 if $self->_warnings_is_enabled
465 1 1 unless ($nls->is_empty)
481 0 2 defined $re->{'r_note'} ? :
2 0 defined $tz ? :
0 2 defined $defaults ? :
486 0 2 if (defined $preamble and not $preamble->is_empty)
491 2 0 unless (defined $type)
513 16 18 unless ($nls->is_empty)
530 2 32 defined $re->{'r_note'} ? :
0 34 defined $tz ? :
0 34 defined $defaults ? :
535 3 31 if (defined $preamble and not $preamble->is_empty)
552 5 3 unless ($nls->is_empty)
567 7 1 defined $re->{'r_note'} ? :
0 8 defined $tz ? :
0 8 defined $defaults ? :
572 0 8 if (defined $preamble and not $preamble->is_empty)
585 0 6 if (defined $change and length($re->{'g_space'} // '') > $change->prefix->length) { }
604 0 6 defined $re->{'g_name_colon'} ? :
0 6 defined $defaults ? :
607 0 6 if (not defined $release) { }
609 0 0 if $self->_warnings_is_enabled
610 0 0 unless ($nls->is_empty)
619 0 6 unless ($nls->is_empty)
648 7 34 if (defined $group) { }
34 0 elsif (defined $release) { }
650 0 7 unless ($nls->is_empty)
659 0 34 unless ($nls->is_empty)
668 0 0 if $self->_warnings_is_enabled
669 0 0 unless ($nls->is_empty)
682 4 0 if (defined $change) { }
704 0 0 if (defined $group) { }
0 0 elsif (defined $release) { }
706 0 0 unless ($nls->is_empty)
715 0 0 unless ($nls->is_empty)
729 4 23 if ($elements->is_empty) { }
23 0 elsif (defined $release) { }
745 23 0 defined $re->{'nl'} && defined $re->{'space'} ? :
754 0 0 if $self->_warnings_is_enabled
775 1 0 if (not $nls->is_empty) { }
793 0 0 if $self->_warnings_is_enabled
807 4 0 if (defined $text and $text->defined)
809 1 3 unless ($text =~ /[\015\012]$/ms)
813 1 3 unless ($text =~ /[\015\012]{2,}$/ms)
842 0 0 if $tz
858 0 0 unless exists $sets->{$set}
876 0 0 if (not exists $self->{'_reset'} && defined $self->{'_reset'} && length $self->{'_reset'} and scalar @_)
891 0 20 if (@_)
894 0 0 if ($self->_is_a($v, 'DateTime::TimeZone')) { }
900 0 0 unless $self->_load_class("DateTime::TimeZone")
908 0 0 if ($@)
915 20 0 if (not defined $self->{'time_zone'}) { }
917 0 20 if (Wanted::want('OBJECT')) { }
943 0 1 unless defined $str
944 0 1 if ($str->is_empty)
946 0 0 if $self->_warnings_is_enabled
951 0 1 unless $fh->print($str->scalar)