Branch Coverage

blib/lib/Hash/Wrap.pm
Criterion Covered Total %
branch 201 254 79.1


line true false branch
54 175 59 defined $_->[0] && defined $_->[1] ? :
117 0 if defined $candidate and 2 == grep({defined $_->[0] && defined $_->[1] ? $_->[0] eq $_->[1] : 1;} [$reftype->[0], builtin::reftype($candidate)], [$reftype->[1], builtin::reftype($$candidate)])
72 0 91 if $@
88 0 4 if $@
99 0 76 unless builtin::blessed($object)
102 4 72 if (exists $REGISTRY{$hash_class}{'predicate_template'} and $key =~ /^has_(.*)/)
109 8 64 unless $REGISTRY{$hash_class}{'validate'}->($object, $key)
118 0 58 unless defined $class
120 26 32 unless (exists $self->{$key})
122 12 14 if (exists $REGISTRY{$class}{'methods'}{$key})
143 4 65 unless @imports
148 5 68 if (not ref $args) { }
0 68 elsif ('HASH' ne ref $args) { }
150 1 4 unless grep {/$args/;} @EXPORT
157 0 0 unless grep {/$args/;} @EXPORT
165 1 3 if not !$args->{'-base'} and exists $args->{'-class'}
170 15 56 unless exists $args->{'-as'}
175 70 1 if (defined $name)
177 9 61 if (defined(my $reftype = builtin::reftype($name))) { }
20 41 elsif ($name eq '-return') { }
178 1 0 if $reftype ne "SCALAR" and $reftype ne "VSTRING" and $reftype ne "REF" and $reftype ne "GLOB" and $reftype ne "LVALUE" and $reftype ne "REGEXP"
195 3 67 if ($args->{'-base'}) { }
197 0 3 if $args->{'-as_return'}
199 3 0 unless exists $args->{'-new'}
205 61 1 if (defined $name)
207 20 39 if ($args->{'-as_return'}) { }
1 38 elsif ($args->{'-lexical'}) { }
225 1 62 if (keys %$args)
240 24 46 if (exists $attr->{'-recurse'})
242 1 23 unless &Scalar::Util::looks_like_number($attr->{'-recurse'})
243 4 19 if $attr->{'-recurse'} == 0
246 53 16 if (not defined $attr->{'-class'}) { }
3 13 elsif ($attr->{'-class'} eq '-target' or $attr->{'-class'} eq '-caller') { }
251 109 0 defined $attr->{$_} ? :
258 1 2 if ref $name
265 7 61 if defined $REGISTRY{$class}
283 5 56 if ($attr->{'-lvalue'})
284 0 5 if ($] lt '5.016000') { }
286 0 0 if $attr->{'-lvalue'} < 0
294 7 54 if ($attr->{'-undef'})
299 14 47 if ($attr->{'-exists'})
300 13 1 $attr->{'-exists'} =~ /\A([^\W\d]\w*+)\z/ ? :
305 2 59 if ($attr->{'-defined'})
306 1 1 $attr->{'-defined'} =~ /\A([^\W\d]\w*+)\z/ ? :
311 5 56 if ($attr->{'-immutable'})
318 13 48 if ($attr->{'-recurse'})
326 7 6 --$attr->{'-recurse'} < 0 ? :
339 4 9 if ($attr->{'-copy'}) { }
341 3 1 if ($attr->{'-immutable'}) { }
377 10 3 --$attr->{'-recurse'} < 0 ? :
382 1 60 if ($attr->{'-predicate'})
459 13 48 keys %closures ? :
0 61 unless _compile_from_tpl(\$class_template, \%dict, keys %closures ? \%closures : ())
462 5 56 unless (not $attr->{'-new'})
463 0 5 $attr->{'-new'} =~ /\A([^\W\d]\w*+)\z/ ? :
467 16 45 if ($attr->{'-methods'})
470 1 15 unless "HASH" eq ref $methods
474 1 15 unless $mth =~ /\A([^\W\d]\w*+)\z/
478 1 14 unless "CODE" eq ref $code
491 1 57 if ($attr->{'-predicate'})
510 1 9 if exists $args->{'-copy'} and exists $args->{'-clone'}
523 5 60 $args->{'-as_method'} ? :
530 9 56 if ($args->{'-copy'}) { }
3 53 elsif (exists $args->{'-clone'}) { }
536 1 2 if ('CODE' eq ref $args->{'-clone'}) { }
557 8 57 if (defined(my $opts = $args->{'-immutable'} || undef)) { }
3 54 elsif (defined($opts = $args->{'-lockkeys'} || undef)) { }
561 1 7 if ("ARRAY" eq ref $opts)
577 2 1 if ('ARRAY' eq ref $args->{'-lockkeys'}) { }
1 0 elsif ($args->{'-lockkeys'}) { }
596 21 36 if ($args->{'-as_scalar_ref'} or $args->{'-as_return'} or $args->{'-lexical'})
629 7 57 if $args->{'-as_scalar_ref'}
652 14 206 if (defined $closures and %$closures)
663 0 220 if ($DEBUG)
669 14 206 exists $dict->{'closures'} ? :
676 14 206 if (@_ > 1) { }
682 2 50 unless builtin::blessed($self)
4 32 unless exists $self->{'a'}
0 22 if @_
1 19 unless builtin::blessed($self)
1 18 if @_
0 18 unless builtin::blessed($self)
2 15 if @_
0 13 if "HASH" ne builtin::reftype($hash)
0 13 if builtin::blessed($hash)
2 25 if "HASH" ne builtin::reftype($hash)
2 19 if builtin::blessed($hash)
1 12 if "HASH" ne builtin::reftype($hash)
0 26 if builtin::blessed($hash)
5 18 if "HASH" ne builtin::reftype($hash)
0 7 if builtin::blessed($hash)
1 6 if "HASH" ne builtin::reftype($hash)
0 6 if builtin::blessed($hash)
2 4 if "HASH" ne builtin::reftype($hash)
0 9 if builtin::blessed($hash)
0 8 if "HASH" ne builtin::reftype($hash)
0 7 if builtin::blessed($hash)
2 2 if "HASH" ne builtin::reftype($hash)
0 1 if builtin::blessed($hash)
0 1 if "HASH" ne builtin::reftype($hash)
0 1 if builtin::blessed($hash)
0 1 if "HASH" ne builtin::reftype($hash)
0 1 if builtin::blessed($hash)
0 1 unless builtin::blessed($self)
0 1 unless exists $self->{'answer'}
0 1 if @_
0 1 unless builtin::blessed($self)
0 1 unless exists $self->{'answer'}
0 1 if @_
0 1 unless builtin::blessed($self)
0 1 unless exists $self->{'a'}
0 1 if @_
0 1 unless builtin::blessed($self)
0 1 unless exists $self->{'a'}
0 1 if @_
0 1 unless builtin::blessed($self)
0 1 unless exists $self->{'a'}
0 1 if @_
0 1 unless builtin::blessed($self)
0 1 unless exists $self->{'a'}
0 1 if @_
0 1 unless builtin::blessed($self)
689 220 2504 unless defined $work
693 535 2564 if (defined $1) { }
699 2475 101 if (defined $v) { }
700 126 2378 if "ARRAY" eq ref $v
704 2 2494 if $work->{'loop'}{$key}++