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
|