Condition Coverage

blib/lib/JSON/Validator.pm
Criterion Covered Total %
condition 162 190 85.2


and 2 conditions

line l !l condition
432 0 6882 push @refs, [$topic, $base] and next
606 0 28 push @errors, [$i, @e] and next
625 0 30 push @passed, $i and next
627 0 18 push @errors, [$i, @e] and next

and 3 conditions

line !l l&&!r l&&r condition
68 6 6 3 $from_type eq 'HASH' and $tied = tied %$from
79 91 52 35 $from_type eq 'HASH' && tied %$from
88 1 26 8 not $args->{'schema'} and $tied->fqn =~ /^\Q$self->{'root_schema_url'}\E\#/
155 3 0 267 not $self->{'version'} and $schema =~ /draft-0+(\w+)/
280 0 1 0 $url =~ m[^/] and $self->ua->server->app
323 15 0 2 $tx->error && $tx->error->{'message'}
327 4 11 0 $cache_path and $cache_path ne $BUNDLED_CACHE_DIR || $ENV{'JSON_VALIDATOR_CACHE_ANYWAYS'}
11 0 0 $cache_path and $cache_path ne $BUNDLED_CACHE_DIR || $ENV{'JSON_VALIDATOR_CACHE_ANYWAYS'} and -w $cache_path
432 13697 6 6882 $topic->{'$ref'} and not ref $topic->{'$ref'}
434 13144 271 288 $topic->{$id_key} and not ref $topic->{$id_key}
481 86 4407 2472 length $location and not length $pointer
486 2469 18 4475 defined $pointer and length $pointer
2487 3 4472 defined $pointer and length $pointer and $pointer =~ m[^/]
501 65 4072 819 ref $schema eq 'HASH' and $schema->{'$ref'}
513 4465 120 4 &blessed($data) && $data->can('TO_JSON')
590 14 96 1 not @errors and @expected
729 86 147 4 defined $schema->{'minItems'} and $schema->{'minItems'} > @$data
733 224 9 4 defined $schema->{'maxItems'} and $schema->{'maxItems'} < @$data
786 3 48 30 defined $value and $self->{'coerce'}{'booleans'}
48 11 19 defined $value and $self->{'coerce'}{'booleans'} and B::svref_2object(\$value)->FLAGS & 12288 || $value =~ /^(true|false)$/
828 32 3 50 $self->{'coerce'}{'numbers'} and $value =~ /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/
838 358 12 10 $d and ($value / $d) =~ /\.[^0]+$/
853 1349 4 2 defined $schema->{'maxProperties'} and $schema->{'maxProperties'} < @dkeys
857 1348 4 3 defined $schema->{'minProperties'} and $schema->{'minProperties'} > @dkeys
872 28024 2 48 $self->{'coerce'}{'defaults'} and ref $r eq 'HASH'
28026 28 20 $self->{'coerce'}{'defaults'} and ref $r eq 'HASH' and exists $r->{'default'}
28 2 18 $self->{'coerce'}{'defaults'} and ref $r eq 'HASH' and exists $r->{'default'} and not exists $data->{$k}
922 29 1948 637 ref $r eq 'HASH' and $r->{'$ref'}
945 499 0 22 B::svref_2object(\$value)->FLAGS & 12288 and 0 + $value eq $value
499 0 22 B::svref_2object(\$value)->FLAGS & 12288 and 0 + $value eq $value and $value * 0 == 0

or 2 conditions

line l !l condition
21 0 49 $ENV{'JSON_VALIDATOR_DEBUG'} || 0
22 0 49 $ENV{'JSON_VALIDATOR_RECURSION_LIMIT'} || 100
92 15 12 _node($schema, $path, 1, 0) || {}
127 5 0 $self->{'coerce'} ||= {}
154 2 268 $args->{'schema'} || 'http://json-schema.org/draft-04/schema#'
346 49 36 $$node{$path->[$n]} ||= {}
382 6965 910 $self->{'level'} || 0
385 7289 0 $schema // ''
386 2 584 $schema->{$id_key} // ''
568 7 0 $rules // {}
645 6 374 $schema->{'exclusiveMaximum'} // ''
669 14 366 $schema->{'exclusiveMinimum'} // ''
755 5 12 $schema->{'additionalItems'} // {'type', 'any'}
820 254 178 $expected ||= 'number'
892 1260 695 $rules{$_} ||= [$additional]
905 773 576 $schema->{'dependencies'} || {}

or 3 conditions

line l !l&&r !l&&!r condition
117 15 186 7 $to->{$key} //= &$cloner($from->{$key})
139 4 14 0 $short->{$_} or $_
181 48 874 7 $schema ||= $self->schema->data
229 0 3 1 $self->{'bundled_refs'}{$ref->fqn} or not $node
3 1 0 $self->{'bundled_refs'}{$ref->fqn} or not $node or not $node->{$key}
4 0 0 $self->{'bundled_refs'}{$ref->fqn} or not $node or not $node->{$key} or data_checksum($ref->schema) eq data_checksum($node->{$key})
327 0 0 11 $cache_path ne $BUNDLED_CACHE_DIR || $ENV{'JSON_VALIDATOR_CACHE_ANYWAYS'}
402 274 29 584 $schema->{$id_key} // $id
406 289 11 2 $rid =~ /^\w+:/ or -e $rid
300 0 2 $rid =~ /^\w+:/ or -e $rid or $rid =~ m[^/]
477 6866 0 6965 not $ref or ref $ref
516 2649 270 1670 $schema->{'type'} || schema_type($schema, $data)
584 1 16 2 not $schema_type or $schema_type eq $type
606 12 16 103 not $schema_type or $schema_type eq $type
627 2 16 19 not $schema_type or $schema_type eq $type
699 0 12 100 !defined($_) || ref $_
786 10 17 3 B::svref_2object(\$value)->FLAGS & 12288 || $value =~ /^(true|false)$/
822 3 14 415 not defined $value or ref $value
925 130 30 2454 @e or not is_type($r, 'HASH')
942 4 12 521 not defined $value or ref $value