Branch Coverage

blib/lib/JSON/Schema/Modern/Vocabulary/Core.pm
Criterion Covered Total %
branch 91 102 89.2


line true false branch
32 72 15 $spec_version ne 'draft7' ? :
27 60 $spec_version eq 'draft2019-09' ? :
45 42 $spec_version eq 'draft2020-12' ? :
27 60 $spec_version eq 'draft2019-09' ? :
45 42 $spec_version eq 'draft2020-12' ? :
15 72 $spec_version eq 'draft7' ? :
49 2 1581 unless assert_keyword_type($state, $schema, "string") and assert_uri_reference($state, $schema)
54 286 1295 if ($state->{'spec_version'} eq 'draft7') { }
55 24 262 if (length $uri->fragment)
56 0 24 if length $uri->clone->fragment(undef)
63 2 1293 if length $uri->fragment
68 24 1531 unless length $uri
70 947 584 $uri->is_abs ? :
89 0 2847 unless $schema_info
98 244 2603 if ($state->{'validate_formats'})
112 1 5474 unless assert_keyword_type($state, $schema, "string") and assert_uri($state, $schema)
119 3 5471 if length $state->{'schema_path'}
123 5427 44 if (my $metaschema_info = $state->{'evaluator'}->_get_metaschema_vocabulary_classes($schema->{'$schema'})) { }
128 1 43 unless $schema_info
136 17 5453 unless @$vocabularies
140 1 5452 if exists $schema->{'$ref'} and $spec_version eq "draft7"
145 524 4928 if (@{$state->{'identifiers'}})
153 0 421 unless assert_keyword_type($state, $schema, "string")
160 0 4 $state->{'keyword'} eq '$id' ? :
4 417 if $state->{'spec_version'} =~ /^draft(?:7|2019-09)$/u and not $$schema{$state->{'keyword'}} =~ /^[A-Za-z][A-Za-z0-9_:.-]*$/u or $state->{'spec_version'} eq "draft2020-12" and not $$schema{$state->{'keyword'}} =~ /^[A-Za-z_][A-Za-z0-9._-]*$/u
179 0 131 unless assert_keyword_type($state, $schema, "boolean")
184 3 128 if length $state->{'schema_path'}
189 587 97 if not $schema->{'$recursiveAnchor'} or exists $state->{'recursive_anchor_uri'}
203 28 2813 unless assert_keyword_type($state, $schema, "string") and assert_uri_reference($state, $schema)
218 0 123 unless $schema_info
220 82 24 if (is_type("boolean", $schema_info->{'schema'}{'$recursiveAnchor'}) and $schema_info->{'schema'}{'$recursiveAnchor'})
233 0 199 unless $schema_info
237 169 25 if (length $uri->fragment and exists $schema_info->{'schema'}{'$dynamicAnchor'} and $uri->fragment eq (my $anchor = $schema_info->{'schema'}{'$dynamicAnchor'}))
245 164 99 if (($dynamic_anchor_subschema_info->{'schema'}{'$dynamicAnchor'} // "") eq $anchor)
256 0 138 unless assert_keyword_type($state, $schema, "object")
259 1 137 if length $state->{'schema_path'}
265 3 262 unless assert_keyword_type({%$state, "_schema_path_suffix", $uri}, $schema, "boolean")
266 7 255 unless assert_uri({%$state, "_schema_path_suffix", $uri}, undef, $uri)
285 0 434 unless assert_keyword_type($state, $schema, "string")
300 2 41 unless (exists $schema_info->{'schema'}{'$vocabulary'})
308 1 40 if length $schema_info->{'document_path'}
309 1 40 unless exists $schema_info->{'schema'}{'$id'}
311 2 39 unless $valid
318 8 70 if $schema_info->{'schema'}{'$vocabulary'}{$uri} and not $class_info
320 8 62 unless $class_info
325 5 57 if $spec_version ne $schema_info->{'specification_version'}
331 0 1 $a->evaluation_order == 999 ? :
0 26 unless $a->evaluation_order <=> $b->evaluation_order
336 9 30 if ($vocabulary_classes[0] // "") ne "JSON::Schema::Modern::Vocabulary::Core"
340 24 15 if $valid
342 24 15 $valid ? :