Condition Coverage

blib/lib/JSON/Schema/Modern/Vocabulary/Applicator.pm
Criterion Covered Total %
condition 80 93 86.0


and 3 conditions

line !l l&&!r l&&r condition
103 317 76 177 $$state{"short_circuit"} and not $$state{"collect_annotations"}
119 465 80 66 @valid > 1 and $$state{"short_circuit"}
207 121 58 0 $$state{"specification_version"} eq "draft4" and not @{$$schema{"dependencies"}{$property}}
302 107 20 89 $$state{"short_circuit"} and not exists $$schema{$$state{"keyword"} eq "prefixItems" ? "items" : ($$state{"keyword"} eq "items" ? "additionalItems" : die())}
310 0 1 8 $valid and ref $$schema{$$state{"keyword"}}[$idx] eq "HASH"
1 0 8 $valid and ref $$schema{$$state{"keyword"}}[$idx] eq "HASH" and exists $$schema{$$state{"keyword"}}[$idx]{"default"}
380 166 53 18 exists $$schema{"maxContains"} and $$state{"_num_contains"} > $$schema{"maxContains"}
217 219 18 $$state{"short_circuit"} and (exists $$schema{"maxContains"} and $$state{"_num_contains"} > $$schema{"maxContains"})
127 72 237 not exists $$schema{"maxContains"} and !$$state{'collect_annotations'} || $$state{'specification_version'} ne 'draft2020-12'
72 28 209 not exists $$schema{"maxContains"} and !$$state{'collect_annotations'} || $$state{'specification_version'} ne 'draft2020-12' and $$state{"_num_contains"} >= ($$schema{"minContains"} // 1)
385 329 233 0 not $$state{"_num_contains"} and ($$schema{'minContains'} // 1) > 0 || $$state{'specification_version'} =~ /^draft[467]\z/u
399 68 0 277 not $$state{"specification_version"} =~ /^draft[467]\z/u and grep(($_ eq "JSON::Schema::Modern::Vocabulary::Validation"), @{$$state{"vocabularies"}})
402 201 40 36 exists $$schema{"maxContains"} and $$state{"_num_contains"} > $$schema{"maxContains"}
404 28 0 0 E($state, 'array contains fewer than %d matching item%s', $$schema{'minContains'}, $$schema{'minContains'} != 1 ? 's' : '') && $valid
171 78 28 exists $$schema{"minContains"} and $$state{"_num_contains"} < $$schema{"minContains"}
418 3065 8036 9 not exists $$data{$property} and $$state{"defaults"}
422 1 0 8 $valid and $$state{"defaults"}
1 1 7 $valid and $$state{"defaults"} and ref $$schema{"properties"}{$property} eq "HASH"
1 0 7 $valid and $$state{"defaults"} and ref $$schema{"properties"}{$property} eq "HASH" and exists $$schema{"properties"}{$property}{"default"}
500 610 152 211 exists $$schema{"properties"} and exists $$schema{"properties"}{$property}
502 514 101 147 exists $$schema{"patternProperties"} and CORE::any {$property =~ /(?:$_)/u;} keys %{$$schema{"patternProperties"}}

or 2 conditions

line l !l condition
323 441 740 $$state{"_last_items_index"} // -1
327 128 684 $$state{"_last_items_index"} // -1
380 56 181 $$schema{"minContains"} // 1

or 3 conditions

line l !l&&r !l&&!r condition
136 74 0 89 !$$schema{'not'} || E($state, 'subschema is true')
153 263 52 53 exists $$schema{"then"} or exists $$schema{"else"}
52 20 33 exists $$schema{"then"} or exists $$schema{"else"} or $$state{"collect_annotations"}
161 29 0 12 $$schema{$keyword} || E({%$state, 'keyword', $keyword}, 'subschema is false')
332 14 53 53 exists $$schema{'prefixItems'} || $$state{'keyword'} eq 'additionalItems'
380 237 0 72 !$$state{'collect_annotations'} || $$state{'specification_version'} ne 'draft2020-12'
18 261 175 $$state{"short_circuit"} and (exists $$schema{"maxContains"} and $$state{"_num_contains"} > $$schema{"maxContains"}) or not exists $$schema{"maxContains"} and !$$state{'collect_annotations'} || $$state{'specification_version'} ne 'draft2020-12' and $$state{"_num_contains"} >= ($$schema{"minContains"} // 1)
385 217 0 16 ($$schema{'minContains'} // 1) > 0 || $$state{'specification_version'} =~ /^draft[467]\z/u