Condition Coverage

lib/At/Protocol/URI.pm
Criterion Covered Total %
condition 49 60 81.6


and 3 conditions

line !l l&&!r l&&r condition
60 10 0 4 length $qs and not $qs =~ /^\?/u
62 12 1 1 length $hash and not $hash =~ /^#/u
120 7 164 6 scalar @parts >= 3 and $parts[0] ne 'at:' || length $parts[1]
146 70 24 0 scalar @uriParts >= 2 and not defined $fragmentPart
165 84 0 108 $rm and keys %+

or 2 conditions

line l !l condition
47 47 102 $res[4] // ""
149 0 $res[1] // ""
65 84 $res[2] // ""
50 99 $res[3] // ""
53 30 60 $res[2] // ""
60 30 $res[0] // ""
36 54 $res[1] // ""
57 14 0 $s->pathname // ""
71 3 472 $v // (return $s->{'host'})
72 10 164 $v // (return $s->{'pathname'})
75 1 154 $v // (return $s->{'searchParams'})
78 2 153 $v // (return $s->{'hash'})
81 2 1 [grep({length $_;} split(m[/]u, $s->pathname, 0))]->[0] || ''
88 1 2 [grep({length $_;} split(m[/]u, $s->pathname, 0))]->[1] || ''
90 2 1 $parts[0] //= "undefined"

or 3 conditions

line l !l&&r !l&&!r condition
32 90 0 0 $parsed // throw(InvalidAtUriError('Invalid AT URI: ' . $base))
34 90 0 0 $relativep // throw(InvalidAtUriError('Invalid path: ' . $uri))
39 59 0 0 $parsed // throw(InvalidAtUriError('Invalid AT URI: ' . $uri))
120 12 2 156 $parts[0] ne 'at:' || length $parts[1]
148 2 4 18 length $fragmentPart == 0 or substr($fragmentPart, 0, 1) ne "/"