File size: 1,062 Bytes
014b14c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
"""Smoke #3: V output schema round-trip."""
from mathcompose.data.schema import (
    StepVerdict, serialize_verifier_output, parse_verifier_output,
)


def test_roundtrip_error():
    sv = [StepVerdict(0, "correct", "fine"), StepVerdict(1, "incorrect", "sign error")]
    txt = serialize_verifier_output(sv, 1)
    out = parse_verifier_output(txt)
    assert out.first_error_index == 1
    assert len(out.steps) == 2
    assert not out.all_correct


def test_roundtrip_all_correct():
    sv = [StepVerdict(0, "correct", ""), StepVerdict(1, "correct", "")]
    out = parse_verifier_output(serialize_verifier_output(sv, -1))
    assert out.first_error_index == -1
    assert out.all_correct


def test_parse_prefers_box_over_verdicts():
    # box says 2 even though a verdict line marks paragraph 1 incorrect
    txt = "Paragraph 1: bad. Verdict: incorrect\n\n\\boxed{2}"
    assert parse_verifier_output(txt).first_error_index == 2


def test_parse_failure_sentinel():
    assert parse_verifier_output("total nonsense with no structure").first_error_index == -2