Branch Coverage

blib/lib/Object/Proto/Sugar.pm
Criterion Covered Total %
branch 131 152 86.1


line true false branch
53 1 37 if grep {$_ eq "-role";} @import
55 0 38 if (grep {$_ eq "-types";} @import)
59 2 36 if (grep {$_ eq "-constants";} @import)
66 3 5 if $name =~ /^-/
67 0 5 if ($name =~ /^[A-Z]/) { }
69 0 0 unless $valid_types{$name}
73 0 5 unless $valid_constants{$name}
81 3 90 if (ref $name) { }
95 2 24 ref $attr[0] eq 'ARRAY' ? :
98 1 3 $#sp < 1 ? :
4 7 if ref $sp[-1] eq "HASH" and exists $sp[-1]{'default'}
99 10 16 unless not $sp[0] && ref $sp[0] and ($sp[0] || '') =~ /^(ro|rw|set)$/
102 1 21 ref $sp[1] eq 'CODE' ? :
22 4 if defined $sp[1]
103 7 19 if ref $sp[2] eq "HASH"
154 7 31 @extends ? :
0 38 @extends > 1 ? :
159 1 37 if ($is_role) { }
161 1 0 if @requires
165 1 37 if @with
167 9 29 if $accessor_alias
177 15 23 if (@func_names)
190 3 4 if (@names) { }
193 3 4 $alias ? :
199 3 0 if (defined &{"${pkg}::$name";})
211 0 3 $name =~ /::/ ? :
221 0 12 if $seen{$pkg}++
231 124 5 if (defined $spec->{'is'})
232 54 70 if ($spec->{'is'} eq "ro")
242 1 128 if ($spec->{'required'})
250 9 120 if ($spec->{'lazy'})
259 49 80 if (defined $spec->{'isa'} or defined $spec->{'coerce'})
261 5 44 if ($ref eq 'CODE' or defined $spec->{'coerce'}) { }
44 0 elsif (not $ref) { }
262 2 3 exists $spec->{'isa'} ? :
263 3 2 exists $spec->{'coerce'} ? :
264 4 1 unless ($$isa{$val1 . $val2}++)
273 44 0 if ($valid_types{$val1})
287 55 13 unless exists $spec->{'default'} or exists $spec->{'builder'}
289 64 10 if (exists $spec->{'builder'} or $ref1 eq 'CODE') { }
7 3 elsif (not $ref1) { }
2 1 elsif ($ref1 eq 'ARRAY') { }
1 0 elsif ($ref1 eq 'HASH') { }
291 6 58 if (not $ref2 and $ref1 ne 'CODE') { }
58 0 elsif ($ref2 eq 'CODE' or $ref1 eq 'CODE') { }
292 6 0 if ($spec->{'builder'} =~ /^1$/) { }
298 7 51 exists $spec->{'builder'} ? :
300 50 8 unless ($isa->{$val1}++)
309 6 1 defined $spec->{'default'} ? :
321 2 127 if (exists $spec->{'trigger'})
323 0 2 if (not $ref) { }
2 0 elsif ($ref eq 'CODE') { }
327 1 1 unless ($isa->{$val1}++)
340 3 126 if (defined $spec->{'predicate'})
341 2 1 if ($spec->{'predicate'} =~ /1/) { }
1 0 elsif (not ref $spec->{'predicate'}) { }
354 5 124 if (defined $spec->{'clearer'})
355 4 1 if ($spec->{'clearer'} =~ /1/) { }
1 0 elsif (not ref $spec->{'clearer'}) { }
369 4 125 if (exists $spec->{'reader'})
370 0 4 if ref $spec->{'reader'}
371 3 1 if ($spec->{'reader'} =~ /^1$/) { }
377 4 125 if (exists $spec->{'writer'})
378 0 4 if ref $spec->{'writer'}
379 3 1 if ($spec->{'writer'} =~ /^1$/) { }
390 2 127 if (defined $spec->{'init_arg'} or defined $spec->{'arg'})
398 1 128 if ($spec->{'weak_ref'} or $spec->{'weak'})
407 21 108 if (exists $spec->{'accessor'})
410 6 2 $spec->{'accessor'} eq '1' ? :
13 8 $alias && $spec->{'accessor'} eq '1' ? :
414 4 125 if (exists $spec->{'reader'} and not ref $spec->{'reader'})
415 3 1 $spec->{'reader'} eq '1' ? :
416 1 3 if $alias and $spec->{'reader'} eq 1
420 4 125 if (exists $spec->{'writer'} and not ref $spec->{'writer'})
421 3 1 $spec->{'writer'} eq '1' ? :
422 1 3 if $alias and $spec->{'writer'} eq 1