Condition Coverage

blib/lib/JSON/Schema/Modern.pm
Criterion Covered Total %
condition 80 94 85.1


and 2 conditions

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

and 3 conditions

line !l l&&!r l&&r condition
139 1 0 1 $schema_info and defined wantarray
398 0 1 2 XXX && $schema->{'$schema'}
479 2559 41742 1239 $keyword ne "\$ref" and exists $schema->{'$ref'}
41742 1213 26 $keyword ne "\$ref" and exists $schema->{'$ref'} and $state->{'spec_version'} eq "draft7"
502 25298 1 1 $self->strict and keys %unknown_keywords
566 16177 388 10255 ($state->{'short_circuit'} || delete $state->{'short_circuit_suggested'}) && !exists $schema->{'unevaluatedItems'} && !exists $schema->{'unevaluatedProperties'}
581 3547 50376 1227 $keyword ne "\$ref" and exists $schema->{'$ref'}
50376 1216 11 $keyword ne "\$ref" and exists $schema->{'$ref'} and $state->{'spec_version'} eq "draft7"
616 26751 0 2 $state->{'strict'} and keys %unknown_keywords
621 10410 14756 1585 $valid and $state->{'collect_annotations'}
14756 761 824 $valid and $state->{'collect_annotations'} and not $state->{'spec_version'} =~ qr/^draft(7|2019-09)$/u
867 47 159 684 length $document_path and $document_path =~ m[^\Q$_->[1]{'path'}\E(?:/|\z)]u

or 2 conditions

line l !l condition
227 13788 10 $config_override->{'initial_schema_uri'} // ""
228 2 13796 $config_override->{'traversed_schema_path'} // ""
229 13434 364 $self->specification_version // "draft2020-12"
242 1 13797 $config_override->{'callbacks'} // {}
294 2 13324 $config_override->{'traversed_schema_path'} // ""
295 1 13325 $config_override->{'effective_base_uri'} // ""
298 2 13324 $config_override->{'data_path'} // ""
472 161377 320 $$vocabulary_cache{$state->{'spec_version'}}{$vocabulary}{'traverse'} //= [map([$_, $vocabulary->can("_traverse_keyword_" . $_ =~ s/^\$//ru)], $vocabulary->keywords($state->{'spec_version'}))]
529 27826 27 $state->{'dynamic_scope'} // []
574 155636 284 $$vocabulary_cache{$state->{'spec_version'}}{$vocabulary}{'evaluate'} //= [map([$_, $vocabulary->can("_eval_keyword_" . $_ =~ s/^\$//ru)], $vocabulary->keywords($state->{'spec_version'}))]
768 3 6 $for_canonical_uri->fragment // ""
863 1877 1877 $fragment // ""
950 6 2 &first(sub {
952 0 0 &first(sub {

or 3 conditions

line l !l&&r !l&&!r condition
162 3 13573 0 $document->_serialized_schema // $document->_serialized_schema($self->_json_decoder->encode($document->schema))
166 439966 59 0 $_->_serialized_schema // $_->_serialized_schema($self->_json_decoder->encode($_->schema))
390 2 18 7355 $config_override->{'collect_annotations'} // $self->collect_annotations
398 0 1 0 $self->specification_version // $self->SPECIFICATION_VERSION_DEFAULT
536 387 0 381 $schema || E($state, 'subschema is false')
561 542 966 25312 exists $schema->{'unevaluatedItems'} || exists $schema->{'unevaluatedProperties'}
767 6 3 0 $e->absolute_keyword_location // $for_canonical_uri
860 2250 1510 822 not length $fragment or $fragment =~ m[^/]u

xor 4 conditions

line l&&r l&&!r !l&&r !l&&!r condition
381 7375 0 0 5834 $valid xor not @{$state->{'errors'}}