Condition Coverage

lib/Data/URIID/Result.pm
Criterion Covered Total %
condition 65 306 21.2


and 3 conditions

line !l l&&!r l&&r condition
966 0 6 0 defined $type_name and $type_name eq "uri"
980 0 0 6 defined $type and defined $id
1012 0 3 6 defined $path and @res = $path =~ /$rule->{'path'}/u
1077 6 0 6 $mode eq "online" and not $extractor->online
1106 0 0 0 $host eq "xkcd.com" and $path eq '/' || $path eq '/info.0.json'
0 0 0 $host eq "uriid.org" and $path =~ m[^/(?:[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}|[a-z-]+|[a-zA-Z])/.+$]u
1159 0 0 0 defined $query{'type'} and length $query{'type'}
0 0 0 defined $query{'type'} and length $query{'type'} and defined $query{'id'}
0 0 0 defined $query{'type'} and length $query{'type'} and defined $query{'id'} and length $query{'id'}
0 0 0 defined $query{'for'} and length $query{'for'}
1181 0 0 0 scalar @segments == 5 and $segments[0] eq ""
0 0 0 scalar @segments == 5 and $segments[0] eq "" and $segments[1] eq "data"
0 0 0 scalar @segments == 5 and $segments[0] eq "" and $segments[1] eq "data" and length $segments[2] == 2
0 0 0 scalar @segments == 5 and $segments[0] eq "" and $segments[1] eq "data" and length $segments[2] == 2 and length $segments[3] == 2
0 0 0 scalar @segments == 5 and $segments[0] eq "" and $segments[1] eq "data" and length $segments[2] == 2 and length $segments[3] == 2 and length $segments[4] > 32
1191 0 0 0 scalar @segments == 6 and $segments[0] eq ""
0 0 0 scalar @segments == 6 and $segments[0] eq "" and $segments[1] eq "data"
0 0 0 scalar @segments == 6 and $segments[0] eq "" and $segments[1] eq "data" and $segments[2] eq "preview"
0 0 0 scalar @segments == 6 and $segments[0] eq "" and $segments[1] eq "data" and $segments[2] eq "preview" and length $segments[3] == 2
0 0 0 scalar @segments == 6 and $segments[0] eq "" and $segments[1] eq "data" and $segments[2] eq "preview" and length $segments[3] == 2 and length $segments[4] == 2
0 0 0 scalar @segments == 6 and $segments[0] eq "" and $segments[1] eq "data" and $segments[2] eq "preview" and length $segments[3] == 2 and length $segments[4] == 2 and length $segments[5] > 32
1203 0 0 0 scalar @segments == 5 and $segments[0] eq ""
0 0 0 scalar @segments == 5 and $segments[0] eq "" and $segments[1] eq "v2"
0 0 0 scalar @segments == 5 and $segments[0] eq "" and $segments[1] eq "v2" and $segments[2] eq "by"
0 0 0 scalar @segments == 5 and $segments[0] eq "" and $segments[1] eq "v2" and $segments[2] eq "by" and $segments[3] =~ /^[a-z]+-[0-9]+-[0-9]+$/u
0 0 0 scalar @segments == 5 and $segments[0] eq "" and $segments[1] eq "v2" and $segments[2] eq "by" and $segments[3] =~ /^[a-z]+-[0-9]+-[0-9]+$/u and length $segments[4] > 32
1286 2 0 0 $as eq "string" and $source_type eq "media_subtype"
0 2 0 $as eq "ise" and $source_type eq "media_subtype"
2 0 0 $as eq "string" and eval {
2 0 0 $as eq __PACKAGE__ and eval {
2 0 0 $as eq __PACKAGE__ and eval {
0 0 2 $as eq "ise" and eval {
0 0 0 $as eq "rgb" and eval {
0 0 0 eval {
0 0 0 $as =~ /^[A-Z]/u || $as =~ /::/u and eval {
1306 0 0 0 $as eq __PACKAGE__ and defined(my $ise = eval {
1337 0 20 0 defined $result and defined $result->{'attributes'}
1431 0 94 0 defined $result and defined $result->{'digest'}
1479 0 0 0 defined $result and defined $result->{'digest'}
1531 0 0 0 not defined $t_template and ref $template eq "HASH"
1610 0 0 0 defined $opts{'action'} and $opts{'action'} eq "info"
0 0 0 defined $opts{'action'} and $opts{'action'} eq "info" and $service eq "wikipedia"
1620 0 0 0 $service eq "uriid" and defined(my $type = eval {
1626 0 0 0 defined $opts{'action'} and $opts{'action'} eq "info"
1656 0 0 0 defined $self->{'url_overrides'} and defined $self->{'url_overrides'}{$service}

or 2 conditions

line l !l condition
958 2 4 $ise_order //= ["uuid","oid","uri"]
962 6 0 $type_name // ""
972 0 6 $self->{'primary'} // {}
1046 76 0 $opts{'mode'} // "online"
1047 70 6 $$self{$mode . '_results'} //= {}
1052 12 14 eval {
1059 6 20 $res->{'id'} // {}
1065 0 0 $self->{'url_overrides'} //= {}
1082 46 0 eval {
1090 0 18 $self->digest($digest, "as", "hex", "default", undef) // (next)
1188 0 0 $self->{'primary'}{'digest'} //= {}
1198 0 0 $self->{'primary'}{'digest'} //= {}
1211 0 0 $self->{'primary'}{'digest'} //= {}
1227 20 66 $opts{'as'} // "raw"
1260 0 10 $opts{'_no_try'} //= {}
1265 10 0 $id_conv{$type_name} // []
1331 4 0 $self->{'offline_results'} //= {}
1332 4 0 $self->{'online_results'} //= {}
1365 0 2 $self->{'attributes_cache'} //= {}
0 2 +($self->{'attributes_cache'} //= {})->{$key} //= {}
1368 0 0 ref $value[0] || ref $value || $info->{'source_type'} || 'raw'
1410 18 0 $opts{'as'} // "hex"
1422 12 6 $self->{'primary'}{'digest'} //= {}
1427 18 0 $self->{'offline_results'} //= {}
1428 12 6 $self->{'online_results'} //= {}
1473 0 0 $self->{'primary'}{'digest'} // {}
1475 0 0 $self->{'offline_results'} //= {}
1476 0 0 $self->{'online_results'} //= {}
1514 0 0 $base // {}
1551 0 0 $t_opts //= {}
1555 0 0 $map{$1} || (next)
0 0 $2 || 0
0 0 $3 || 9999
1595 0 0 $url_templates{$service} // []
1602 0 0 $url_templates{$service} // []
1605 0 0 eval {
1647 0 0 $self->digest($digest, "default", undef) // (next)
1686 0 0 $url_templates{$service} //= []
1693 0 0 $digest_url_templates{$service} //= []
1711 0 0 $reg->{'type'} //= \&Data::URIID::Result::_register_service__type
1712 0 0 $reg->{'id'} //= \&Data::URIID::Result::_register_service__id
1713 0 0 $reg->{'action'} //= \&Data::URIID::Result::_register_service__action
1717 0 0 $url_parser{$scheme} //= []

or 3 conditions

line l !l&&r !l&&!r condition
1061 14 4 0 $self->{'id'}{$ise} //= $res->{'id'}{$id_type}
1066 0 0 0 $self->{'url_overrides'}{$service} //= $res->{'url_overrides'}
1106 0 0 0 $path eq '/' || $path eq '/info.0.json'
0 0 0 $host eq "uriid.org" or $host eq "api.uriid.org"
0 0 0 $host eq "files.fellig.org" or $host eq "thumbnails.fellig.org"
1229 66 0 20 $as eq "raw" or $as eq "string"
66 0 20 $as eq "raw" or $as eq "string" or $as eq $src_type
1286 0 0 0 $as =~ /^[A-Z]/u || $as =~ /::/u
1315 0 0 0 $self->{'cache_key'} //= sprintf('%s/%s', $self->{'primary'}{'type'}, $self->{'primary'}{'id'})
1319 6 0 0 $attributes{$key} // croak(sprintf('Unknown attribute "%s"', $key))
1320 2 0 4 $opts{'as'} // $info->{'default_as'}
0 0 4 ($opts{'as'} // $info->{'default_as'}) // $info->{'source_type'}
1330 2 0 4 defined $value or ref $value eq "ARRAY"
1361 2 0 4 $value //= $default_value
1369 2 0 0 $as //= $source_type
1392 0 2 0 $cache->{$as} //= $self->_cast($key, $value, $source_type, $as, %opts)
1414 0 18 0 $digest_name_converter{fc $key} // $key
1437 0 0 0 $as eq "base64" or $as eq "b64"
1532 0 0 0 $template->{'id_type'} // $template->{'digest'}
0 0 0 ($template->{'id_type'} // $template->{'digest'}) // $template->{'type'}
1577 0 0 0 $opts{'service'} // $self->attribute("service")
1589 0 0 0 $opts{'action'} //= eval {
1624 0 0 0 $types->{'backward'}{$type} // $type
1728 0 184 0 $uuids->{$media_subtype} //= "Data::Identifier::Generate"->generic("namespace", "50d7c533-2d9b-4208-b560-bcbbf75ce3f9", "input", lc $media_subtype)->uuid
1749 0 0 0 $fellig_tables{$table} // croak("Not supported")
1797 2 2 2 $type_name eq "uuid" or $type_name eq "oid"
4 0 2 $type_name eq "uuid" or $type_name eq "oid" or $type_name eq "uri"

xor 4 conditions

line l&&r l&&!r !l&&r !l&&!r condition
1371 0 0 0 2 ref $value eq 'ARRAY' xor $opts{'list'}