Condition Coverage

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


and 2 conditions

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

and 3 conditions

line !l l&&!r l&&r condition
140 1 0 1 $schema_info and defined wantarray
399 0 1 2 XXX && $schema->{'$schema'}
480 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"
503 25298 1 1 $self->strict and keys %unknown_keywords
567 16177 388 10255 ($state->{'short_circuit'} || delete $state->{'short_circuit_suggested'}) && !exists $schema->{'unevaluatedItems'} && !exists $schema->{'unevaluatedProperties'}
582 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"
617 26751 0 2 $state->{'strict'} and keys %unknown_keywords
622 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
879 47 161 684 length $document_path and $document_path =~ m[^\Q$_->[1]{'path'}\E(?:/|\z)]u

or 2 conditions

line l !l condition
228 13787 10 $config_override->{'initial_schema_uri'} // ""
229 2 13795 $config_override->{'traversed_schema_path'} // ""
230 13433 364 $self->specification_version // "draft2020-12"
243 1 13796 $config_override->{'callbacks'} // {}
295 2 13323 $config_override->{'traversed_schema_path'} // ""
296 1 13324 $config_override->{'effective_base_uri'} // ""
299 2 13323 $config_override->{'data_path'} // ""
473 161377 320 $$vocabulary_cache{$state->{'spec_version'}}{$vocabulary}{'traverse'} //= [map([$_, $vocabulary->can("_traverse_keyword_" . $_ =~ s/^\$//ru)], $vocabulary->keywords($state->{'spec_version'}))]
530 27825 27 $state->{'dynamic_scope'} // []
575 155636 284 $$vocabulary_cache{$state->{'spec_version'}}{$vocabulary}{'evaluate'} //= [map([$_, $vocabulary->can("_eval_keyword_" . $_ =~ s/^\$//ru)], $vocabulary->keywords($state->{'spec_version'}))]
780 3 6 $for_canonical_uri->fragment // ""
875 1877 1877 $fragment // ""

or 3 conditions

line l !l&&r !l&&!r condition
163 3 13572 0 $document->_serialized_schema // $document->_serialized_schema($self->_json_decoder->encode($document->schema))
167 420200 59 0 $_->_serialized_schema // $_->_serialized_schema($self->_json_decoder->encode($_->schema))
391 2 17 7355 $config_override->{'collect_annotations'} // $self->collect_annotations
399 0 1 0 $self->specification_version // $self->SPECIFICATION_VERSION_DEFAULT
537 387 0 381 $schema || E($state, 'subschema is false')
562 542 966 25312 exists $schema->{'unevaluatedItems'} || exists $schema->{'unevaluatedProperties'}
779 6 3 0 $e->absolute_keyword_location // $for_canonical_uri
872 2250 1510 822 not length $fragment or $fragment =~ m[^/]u

xor 4 conditions

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