Condition Coverage

blib/lib/JSON/Schema/Modern/Vocabulary/Core.pm
Criterion Covered Total %
condition 59 66 89.3


and 3 conditions

line !l l&&!r l&&r condition
55 0 2 2151 assert_keyword_type($state, $schema, "string") and assert_uri_reference($state, $schema)
109 2060 583 65 $$state{"specification_version"} =~ /^draft[467]\z/u and $$schema{$$state{"keyword"}} =~ /^#/u
166 1 19 5929 $vocabularies and @$vocabularies
175 645 5280 4 not exists $$schema{$spec_version eq "draft4" ? "id" : "\$id"} and length $$state{"keyword_path"}
183 5550 374 1 exists $$schema{"\$ref"} and $spec_version =~ /^draft[467]\z/u
205 510 88 4 $$state{"specification_version"} =~ /^draft[467]\z/u and not $anchor =~ /^#[A-Za-z][A-Za-z0-9_:.-]*\z/u
523 74 1 $$state{"specification_version"} eq "draft2019-09" and not $anchor =~ /^[A-Za-z][A-Za-z0-9_:.-]*\z/u
162 430 5 $$state{"specification_version"} eq "draft2020-12" and not $anchor =~ /^[A-Za-z_][A-Za-z0-9._-]*\z/u
290 0 32 3701 assert_keyword_type($state, $schema, "string") and assert_uri_reference($state, $schema)
317 4 17 86 ref $$schema_info{"schema"} eq "HASH" and is_type("boolean", $$schema_info{"schema"}{"\$recursiveAnchor"})
21 24 62 ref $$schema_info{"schema"} eq "HASH" and is_type("boolean", $$schema_info{"schema"}{"\$recursiveAnchor"}) and $$schema_info{"schema"}{"\$recursiveAnchor"}
338 5 8 200 length $uri->fragment and ref $$schema_info{"schema"} eq "HASH"
13 14 186 length $uri->fragment and ref $$schema_info{"schema"} eq "HASH" and exists $$schema_info{"schema"}{"\$dynamicAnchor"}
22 11 175 length $uri->fragment and ref $$schema_info{"schema"} eq "HASH" and exists $$schema_info{"schema"}{"\$dynamicAnchor"} and $uri->fragment eq (my $anchor = $$schema_info{"schema"}{"\$dynamicAnchor"})
348 54 10 170 exists(($$resource{"anchors"} // {})->{$anchor}) and $$resource{"anchors"}{$anchor}{"dynamic"}

or 2 conditions

line l !l condition
216 17 491 $$state{"identifiers"}{$base_uri}{"anchors"} // {}
298 3125 0 $$state{"traversed_keyword_path"} // ""
348 181 53 $$resource{"anchors"} // {}

or 3 conditions

line l !l&&r !l&&!r condition
205 4 1 597 $$state{"specification_version"} =~ /^draft[467]\z/u and not $anchor =~ /^#[A-Za-z][A-Za-z0-9_:.-]*\z/u or $$state{"specification_version"} eq "draft2019-09" and not $anchor =~ /^[A-Za-z][A-Za-z0-9_:.-]*\z/u
1 5 592 $$state{"specification_version"} =~ /^draft[467]\z/u and not $anchor =~ /^#[A-Za-z][A-Za-z0-9_:.-]*\z/u or $$state{"specification_version"} eq "draft2019-09" and not $anchor =~ /^[A-Za-z][A-Za-z0-9_:.-]*\z/u or $$state{"specification_version"} eq "draft2020-12" and not $anchor =~ /^[A-Za-z_][A-Za-z0-9._-]*\z/u
273 52 251 76 not $$schema{"\$recursiveAnchor"} or exists $$state{"recursive_anchor_uri"}
298 3125 0 0 $$state{"initial_schema_uri"} // ()
321 62 0 0 $$state{"recursive_anchor_uri"} // $$state{"initial_schema_uri"}