Condition Coverage

blib/lib/JSON/Schema/Modern.pm
Criterion Covered Total %
condition 78 90 86.6


and 2 conditions

line l !l condition
306 26394 0 exists $config_override->{$_} and die $_ . " not supported as a config override"

and 3 conditions

line !l l&&!r l&&r condition
138 1 0 1 $schema_info and defined wantarray
397 0 1 2 XXX && $schema->{'$schema'}
478 2469 41178 1203 $keyword ne "\$ref" and exists $schema->{'$ref'}
41178 1177 26 $keyword ne "\$ref" and exists $schema->{'$ref'} and $state->{'spec_version'} eq "draft7"
501 24914 1 1 $self->strict and keys %unknown_keywords
565 16012 384 10124 ($state->{'short_circuit'} || delete $state->{'short_circuit_suggested'}) && !exists $schema->{'unevaluatedItems'} && !exists $schema->{'unevaluatedProperties'}
580 3471 49969 1210 $keyword ne "\$ref" and exists $schema->{'$ref'}
49969 1199 11 $keyword ne "\$ref" and exists $schema->{'$ref'} and $state->{'spec_version'} eq "draft7"
615 26451 0 2 $state->{'strict'} and keys %unknown_keywords
620 10270 14616 1565 $valid and $state->{'collect_annotations'}
14616 751 814 $valid and $state->{'collect_annotations'} and not $state->{'spec_version'} =~ qr/^draft(7|2019-09)$/u
877 47 147 676 length $document_path and $document_path =~ m[^\Q$_->[1]{'path'}\E(?:/|\z)]u

or 2 conditions

line l !l condition
226 13635 10 $config_override->{'initial_schema_uri'} // ""
227 2 13643 $config_override->{'traversed_schema_path'} // ""
228 13281 364 $self->specification_version // "draft2020-12"
241 1 13644 $config_override->{'callbacks'} // {}
293 2 13195 $config_override->{'traversed_schema_path'} // ""
294 1 13196 $config_override->{'effective_base_uri'} // ""
297 2 13195 $config_override->{'data_path'} // ""
471 158855 314 $$vocabulary_cache{$state->{'spec_version'}}{$vocabulary}{'traverse'} //= [map([$_, $vocabulary->can("_traverse_keyword_" . $_ =~ s/^\$//ru)], $vocabulary->keywords($state->{'spec_version'}))]
528 27513 27 $state->{'dynamic_scope'} // []
573 153969 278 $$vocabulary_cache{$state->{'spec_version'}}{$vocabulary}{'evaluate'} //= [map([$_, $vocabulary->can("_eval_keyword_" . $_ =~ s/^\$//ru)], $vocabulary->keywords($state->{'spec_version'}))]
778 3 6 $for_canonical_uri->fragment // ""
873 1825 1869 $fragment // ""

or 3 conditions

line l !l&&r !l&&!r condition
161 3 13420 0 $document->_serialized_schema // $document->_serialized_schema($self->_json_decoder->encode($document->schema))
165 405903 60 0 $_->_serialized_schema // $_->_serialized_schema($self->_json_decoder->encode($_->schema))
389 2 17 7279 $config_override->{'collect_annotations'} // $self->collect_annotations
397 0 1 0 $self->specification_version // $self->SPECIFICATION_VERSION_DEFAULT
535 387 0 381 $schema || E($state, 'subschema is false')
560 534 958 25028 exists $schema->{'unevaluatedItems'} || exists $schema->{'unevaluatedProperties'}
777 6 3 0 $e->absolute_keyword_location // $for_canonical_uri
870 2242 1458 774 not length $fragment or $fragment =~ m[^/]u

xor 4 conditions

line l&&r l&&!r !l&&r !l&&!r condition
380 7298 0 0 5782 $valid xor not @{$state->{'errors'}}