{# -*- engine: jinja -*- #}
| Line | Branch{% if not EXCLUDE_CONDITIONS %} | Condition{% endif %} {% if SHOW_DECISION %} | Decision{% endif %} {% if not EXCLUDE_CALLS %} | Call{% endif %} | Exec | Source{% if USE_BLOCK_IDS %} | Block IDs{% endif %} | 
|---|---|---|---|---|---|---|---|
| {{row.lineno}} | {% if row.linebranch %} {% if not EXCLUDE_CONDITIONS %}{{row.linebranch.taken}}/{{row.linebranch.total}}
            {% for branch in row.linebranch.branches %}
            {% if branch.source_block_id %}
            {%  set block_info = " (%d→%d)" | format(branch.source_block_id, branch.destination_block_id) | safe %}
            {% else %}
            {%  set block_info = "" %}
            {% endif %}
            {% if branch.excluded %}
             – Branch {{branch.name}}{{block_info}} excluded.{% elif branch.taken %} ✓ Branch {{branch.name}}{{block_info}} taken {{branch.count}} times.{% else %} ✗ Branch {{branch.name}}{{block_info}} not taken.{% endif%}
            {% endfor %} | {% if row.linecondition %} {% endif %}
      {% if SHOW_DECISION %}{{row.linecondition.covered}}/{{row.linecondition.count}}
            {% for condition in row.linecondition.condition %}
            {% if condition.not_covered_true and condition.not_covered_false %}
             ✗ {% if condition.name is not none %}Condition {{condition.name}}: {% endif %}Not covered.{% elif condition.not_covered_true %} ✗ {% if condition.name is not none %}Condition {{condition.name}}: {% endif %}True not covered.{% elif condition.not_covered_false %} ✗ {% if condition.name is not none %}Condition {{condition.name}}: {% endif %}False not covered.{% else %} ✓ {% if condition.name is not none %}Condition {{condition.name}}: {% endif %}Fully covered.{% endif%}
            {% endfor %} | {% if row.linedecision %} {% endif %}
      {% if not EXCLUDE_CALLS %}{{row.linedecision.taken}}/{{row.linedecision.total}}
            {% for decision in row.linedecision.decisions %}
            {% if decision.uncheckable %}
             ? Decision couldn't be analyzed.{% elif decision.taken %} ✓ Decision '{{decision.name}}' taken {{decision.count}} times.{% else %} ✗ Decision '{{decision.name}}' not taken.{% endif %}
            {% endfor %} | {% if row.linecall %} {% endif %}{{row.linecall.invoked}}/{{row.linecall.total}}
            {% for call in row.linecall.calls %}
            {% if call.invoked %}
             ✓ Call {{call.name}} invoked.{% else %} ✗ Call {{call.name}} not invoked.{% endif%}
            {% endfor %} | {% if ( row.covclass == 'uncoveredLine' ) %}✗{% elif ( row.covclass == 'excludedLine' ) %}−{% else %}{{row.linecount}}{% endif %} | {{row.source}}{% if USE_BLOCK_IDS %} | {{row.block_ids | join(', ')}}{% endif %} |