Condition Coverage

lib/ChordPro/lib/JSON/Relaxed/Parser.pm
Criterion Covered Total %
condition 28 142 19.7


and 3 conditions

line !l l&&!r l&&r condition
76 0 0 133 defined $data and length $data
311 0 0 69314 $implied_outer_hash and not $strict
313 0 69182 132 @tokens > 2 and $tokens[0]->is_string
69182 0 132 @tokens > 2 and $tokens[0]->is_string and $tokens[1]->token =~ /[:={]/u
342 69181 133 0 $opts{'top'} and @tokens
69314 0 0 $opts{'top'} and @tokens and $strict || !$extra_tokens_ok
0 0 0 $opts{'top'} and @tokens and $strict || !$extra_tokens_ok and not $self->is_error
395 50139 0 0 $key_order and not $strict
50139 0 0 $key_order and not $strict and @ko > 1
413 0 0 0 $combined_keys and not $strict
430 0 0 264 $prp and $next->token eq "{"
496 0 0 239414 $combined_keys and not $strict
0 239176 238 $combined_keys and not $strict and $key =~ /\./su
526 163846 0 0 $t eq "," and !$strict || @$rv
641 0 0 0 $v =~ /^$p_number$/u and 0 + $v ne $v
682 0 0 0 $i + length(join $", @v) < 72 and not join("", @v) =~ /\s|$p_newlines/u
734 0 0 0 $ckeys and ref $v eq "HASH"
0 0 0 $ckeys and ref $v eq "HASH" and keys %$v == 1
838 0 0 0 $pretty and not $level
897 0 0 0 $hr and $hl
1113 0 133300 0 $self->parent->prp and $content =~ /^(?:on|off)$/u

or 2 conditions

line l !l condition
321 69314 0 shift @tokens // (return)
544 113995 0 $tokens[0] || ''
577 0 0 $opts{'level'} // 0
579 0 0 $opts{'indent'} // 2
585 0 0 $opts{'nounicodeescapes'} // 0

or 3 conditions

line l !l&&r !l&&!r condition
286 121400 131733 339017 $typ eq 'U' || $typ eq 'N'
342 0 0 0 $strict || !$extra_tokens_ok
426 0 0 119707 $next->token eq "," or $next->token eq "}"
526 0 0 0 !$strict || @$rv
550 19056 94830 109 $next->token =~ /^[,\]]$/u or $next->is_string
113886 109 0 $next->token =~ /^[,\]]$/u or $next->is_string or $next->is_list_opener
580 0 0 0 $opts{'implied_outer_hash'} // $implied_outer_hash
581 0 0 0 $opts{'combined_keys'} // $combined_keys
582 0 0 0 $opts{'prp'} // $prp
583 0 0 0 $opts{'pretty'} // $pretty
584 0 0 0 $opts{'strict'} // $strict
623 0 0 0 UNIVERSAL::isa($str, "JSON::Boolean") or UNIVERSAL::isa($str, "JSON::PP::Boolean")
641 0 0 0 $v ne $str or $v =~ /^$p_number$/u and 0 + $v ne $v
0 0 0 $v ne $str or $v =~ /^$p_number$/u and 0 + $v ne $v or $v =~ /$p_reserved/u
0 0 0 $v ne $str or $v =~ /^$p_number$/u and 0 + $v ne $v or $v =~ /$p_reserved/u or $v =~ /$p_quotes/u
0 0 0 $v ne $str or $v =~ /^$p_number$/u and 0 + $v ne $v or $v =~ /$p_reserved/u or $v =~ /$p_quotes/u or $v =~ /\s/u
0 0 0 $v ne $str or $v =~ /^$p_number$/u and 0 + $v ne $v or $v =~ /$p_reserved/u or $v =~ /$p_quotes/u or $v =~ /\s/u or $v =~ /^(true|false|null)$/u
0 0 0 $v ne $str or $v =~ /^$p_number$/u and 0 + $v ne $v or $v =~ /$p_reserved/u or $v =~ /$p_quotes/u or $v =~ /\s/u or $v =~ /^(true|false|null)$/u or not length $v
702 0 0 0 $level or not $impoh
749 0 0 0 UNIVERSAL::can($v, "TO_JSON") // UNIVERSAL::can($v, "FREEZE")
809 0 0 0 $level or not $impoh
822 0 0 0 UNIVERSAL::can($rv, "TO_JSON") // UNIVERSAL::can($rv, "FREEZE")
853 0 0 0 $k eq "oneOf" or $k eq "anyOf"