Branch Coverage

blib/lib/JSON/Schema/Modern/Utilities.pm
Criterion Covered Total %
branch 160 182 87.9


line true false branch
85 113 87500 if ($type eq "null")
88 11230 76270 if ($type eq "boolean")
91 19889 56381 if ($type eq "object")
94 14092 42289 if ($type eq "array")
98 11971 16 if ($type eq "string" or $type eq "number" or $type eq "integer")
99 20 42253 unless defined $value
107 30286 11967 if ($type eq "string")
116 8048 3919 if ($type eq "number")
121 3919 0 if ($type eq "integer")
122 17 3902 if ($$config{'legacy_ints'}) { }
139 11 5 if ($type =~ /^reference to (.+)\z/u)
151 71861 29819 if ref $value eq "HASH"
152 10537 19282 if is_bool($value)
153 562 18720 unless defined $value
154 2365 16355 if ref $value eq "ARRAY"
157 880 15475 if (length ref $value)
160 327 320 !$$config{'legacy_ints'} && $value->is_int ? :
7 64 defined builtin::blessed($value) ? :
647 71 $ref eq 'Math::BigFloat' ? :
162 718 $ref eq 'Math::BigInt' ? :
176 8779 15 if $flags & 1024 and !($flags & 768) || do { BEGIN {${^WARNING_BITS} = "\xdd\x7f\xf7\xc3\xd7\xff\xf5\xff\xff\xff\xff\xff\xf5\xd7\xf4\xd7\x15\x51\x55\x55\x55\x55\x55"} 0 + $value eq $value }
178 316 6380 if ($$config{'legacy_ints'}) { }
181 313 3 $flags & 256 && !($flags & 512) ? :
316 0 if &created_as_number($value)
188 6323 42 int $value == $value ? :
6365 15 if &created_as_number($value)
200 65639 4 unless builtin::is_bool($value)
209 24594 34370 unless ref $value eq "HASH"
228 3 6451 if grep(($types[$_] eq "ambiguous type"), (0, 1))
231 88 6363 if ($$state{"scalarref_booleans"})
232 14 74 if $types[0] eq "reference to SCALAR"
233 18 70 if $types[1] eq "reference to SCALAR"
236 16 6435 if ($$state{"stringy_numbers"})
237 5 3 int 0 + $x == $x ? :
8 8 if $types[0] eq "string" and &looks_like_number($x)
240 4 1 int 0 + $y == $y ? :
5 11 if $types[1] eq "string" and &looks_like_number($y)
244 1355 5096 if $types[0] ne $types[1]
245 20 5076 if $types[0] eq "null"
246 2601 2475 if $types[0] eq "string"
248 1552 923 if grep(($types[0] eq $_), ("boolean", "number", "integer"))
252 315 608 if ($types[0] eq "object")
253 23 292 if keys %$x != keys %$y
256 9 283 unless (is_equal(my $arr_x = [sort(keys %$x)], my $arr_y = [sort(keys %$y)], scalar(my $s = {})))
264 127 206 unless is_equal($$x{$property}, $$y{$property}, $state)
270 608 0 if ($types[0] eq "array")
271 11 597 if @$x != @$y
274 196 457 unless is_equal($$x[$idx], $$y[$idx], $state)
292 280 1843 if (is_equal($$array[$idx0], $$array[$idx1], $state))
293 280 0 if exists $$state{"equal_indices"}
305 0 47966 if length $_[0] and substr($_[0], 0, 1) ne "/"
311 0 0 if length $_[0] and substr($_[0], 0, 1) ne "/"
318 2 35 unless (grep((ref $data eq $_), ("HASH", "ARRAY")))
319 1 1 if defined wantarray
324 6 29 unless (length $pointer)
325 4 2 if (ref $data eq "HASH" and ref $value ne "HASH" or ref $data eq "ARRAY" and ref $value ne "ARRAY")
327 2 2 if defined wantarray
331 1 1 if ref $data eq "HASH"
332 1 1 if ref $data eq "ARRAY"
336 29 0 length $pointer ? :
339 1 21 if @keys >= 2 and not $keys[1] =~ /^\d+\z/a and ref $data eq "ARRAY" and not defined wantarray
347 25 36 if not ref $$curp or ref $$curp eq "ARRAY" and not $key =~ /^\d+\z/a
355 42 19 ref $$curp eq 'HASH' || !($key =~ /^\d+\z/a) ? :
400 68 46 if (not $document and my $filename = get_schema_filename($uri))
402 0 68 unless -f $file
414 0 68 if $document->has_errors
424 11 103 unless $document
449 21443 12796 unless @extra_path or length $$state{"keyword_path"}
451 0 12796 @extra_path ? :
452 0 12796 unless length $fragment
473 0 13954 unless defined wantarray
477 1 13953 defined $sps && ref $sps eq 'ARRAY' ? :
497 266 13688 $$state{'traverse'} ? :
7131 6823 @args ? :
266 13688 $$state{'traverse'} ? :
519 3686 8334 $$state{'specification_version'} =~ /^draft[467]\z/u ? :
9382 2638 unless $$state{"collect_annotations"} & ($$state{"specification_version"} =~ /^draft[467]\z/u ? '18446744073709551359' : '18446744073709551615')
535 37 2601 $$state{'_unknown'} ? :
547 0 34 if $$state{"traverse"}
552 0 0 unless defined wantarray
553 0 0 unless exists $$schema{$$state{"keyword"}}
558 0 42323 unless defined wantarray
559 42306 17 if is_type($type, $$schema{$$state{"keyword"}})
560 3 14 $type =~ /^[aeiou]/u ? :
564 0 2875 unless defined wantarray
577 0 5886 unless defined wantarray
582 26 2595 if fc "Mojo::URL"->new($string)->to_unsafe_string ne fc $string or $string =~ /[^[:ascii:]]/u or $string =~ /#/u and not $string =~ /#\z/u and not $string =~ /#[A-Za-z_][A-Za-z0-9_:.-]*\z/u and not $string =~ m[#/(?:[^~]|~[01])*\z]u
595 0 6199 unless defined wantarray
600 8 1 if fc $uri->to_unsafe_string ne fc $string or $string =~ /[^[:ascii:]]/u or not $uri->is_abs or $string =~ /#/u and not $string =~ /#\z/u and not $string =~ /#[A-Za-z][A-Za-z0-9_:.-]*\z/u and not $string =~ m[#/(?:[^~]|~[01])*\z]u
617 102 1036 ref $$schema{$$state{'keyword'}} ? :
622 121 1184 is_bignum($value) ? :