Condition Coverage

lib/Jinja2/TT2/Parser.pm
Criterion Covered Total %
condition 47 163 28.8


and 3 conditions

line !l l&&!r l&&r condition
107 0 0 25 $keyword and $keyword->{'type'} eq "NAME"
231 5 0 0 $in_token->{'type'} ne "OPERATOR" and $in_token->{'type'} ne "NAME"
241 5 0 0 $self->_check("NAME") and $self->_current->{'value'} eq "if"
248 5 0 0 $self->_check("NAME") and $self->_current->{'value'} eq "recursive"
305 2 0 0 $self->_check("NAME") and $self->_current->{'value'} eq "scoped"
361 2 0 0 $self->_check("NAME") and $self->_current->{'value'} eq "ignore"
363 0 0 0 $self->_check("NAME") and $self->_current->{'value'} eq "missing"
375 0 0 0 $self->_check("NAME") and $self->_current->{'value'} eq "context"
410 0 0 0 $self->_check("NAME") and $self->_current->{'value'} eq "context"
440 0 0 0 $self->_check("COMMA") and $self->_advance
443 0 0 0 $self->_check("NAME") and $self->_current->{'value'} eq "as"
456 0 0 0 $self->_check("NAME") and $self->_current->{'value'} eq "context"
538 1 0 0 $self->_check("COMMA") and $self->_advance
583 0 0 0 $self->_check("COMMA") and $self->_advance
681 0 0 0 $self->_check("COMMA") and $self->_advance
752 85 0 2 $self->_check("NAME") and $self->_current->{'value'} eq "if"
756 0 0 2 $self->_check("NAME") and $self->_current->{'value'} eq "else"
784 89 0 2 $self->_check("OPERATOR") and $self->_current->{'value'} eq "or"
798 89 2 2 $self->_check("OPERATOR") and $self->_current->{'value'} eq "and"
810 93 0 1 $self->_check("OPERATOR") and $self->_current->{'value'} eq "not"
830 4 0 0 $op eq "is" and $self->_check("OPERATOR")
4 0 0 $op eq "is" and $self->_check("OPERATOR") and $self->_current->{'value'} eq "not"
4 0 0 $op eq "not" and $self->_check("OPERATOR")
4 0 0 $op eq "not" and $self->_check("OPERATOR") and $self->_current->{'value'} eq "in"
889 99 0 0 $self->_check("OPERATOR") and $self->_current->{'value'} =~ /^[+\-]$/u
912 2 0 0 $self->_check("COMMA") and $self->_advance
914 2 0 0 $self->_check("NAME") and $self->_peek
2 0 0 $self->_check("NAME") and $self->_peek and $self->_peek->{'type'} eq "ASSIGN"
953 2 0 0 $self->_check("COMMA") and $self->_advance
955 2 0 0 $self->_check("NAME") and $self->_peek
2 0 0 $self->_check("NAME") and $self->_peek and $self->_peek->{'type'} eq "ASSIGN"
1049 2 0 4 $self->_check("COMMA") and $self->_advance
1062 2 0 0 $self->_check("COMMA") and $self->_advance
1097 0 1274 73 $token && $token->{'type'} eq $type
1130 0 70 64 $token and $token->{'type'} eq "STMT_START"
1133 0 36 28 $next && $next->{'type'} eq 'NAME' && $next->{'value'} eq $keyword

or 2 conditions

line l !l condition
108 0 0 $keyword->{'pos'} // "unknown"
232 0 0 $in_token->{'type'} // "EOF"
662 0 0 $token->{'value'} // ""
1073 0 0 $token->{'type'} // "undef"
0 0 $token->{'pos'} // "unknown"
1105 0 0 $token->{'type'} // "EOF"
0 0 $token->{'pos'} // "unknown"
1115 0 0 ($token->{'value'} // $token->{'type'}) // "EOF"

or 3 conditions

line l !l&&r !l&&!r condition
231 0 0 5 not $in_token or $in_token->{'type'} ne "OPERATOR" and $in_token->{'type'} ne "NAME"
0 0 5 not $in_token or $in_token->{'type'} ne "OPERATOR" and $in_token->{'type'} ne "NAME" or $in_token->{'value'} ne "in"
373 0 0 0 $ctx eq "with" or $ctx eq "without"
408 0 0 0 $ctx eq "with" or $ctx eq "without"
454 0 0 0 $ctx eq "with" or $ctx eq "without"
853 9 1 89 $self->_check("OPERATOR") or $self->_check("TILDE")
874 0 0 9 $op =~ m[^[*/%]$]u or $op eq "//"
0 0 9 $op =~ m[^[*/%]$]u or $op eq "//" or $op eq "**"
1103 0 0 246 not $token or $token->{'type'} ne $type
1113 0 0 0 not $token or $token->{'type'} ne "NAME"
0 0 0 not $token or $token->{'type'} ne "NAME" or $token->{'value'} ne $keyword
1115 0 0 0 $token->{'value'} // $token->{'type'}
1123 0 65 128 !$token || $token->{'type'} eq 'EOF'