Spaces:
Runtime error
Runtime error
File size: 1,266 Bytes
49da08e | 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 32 33 34 35 | from app.schemas.cross_validation import AnswerKind, ValidationConfidence
from app.services.math_answer_extractor import extract_student_math_answer
def test_extractor_uses_scanner_for_set_literal() -> None:
r = extract_student_math_answer(
"La reponse est {3}.",
expected_answer_kind=AnswerKind.SOLUTION_SET,
)
assert r.extracted_value == "3"
assert r.confidence == ValidationConfidence.CERTAIN
assert r.needs_human_review is False
assert r.reason == "deterministic_structure_scanner"
def test_extractor_preserves_multi_value_solution_set() -> None:
r = extract_student_math_answer(
"On obtient S={-2, 4}.",
expected_answer_kind=AnswerKind.SOLUTION_SET,
)
assert r.extracted_value == "{-2,4}"
assert r.confidence == ValidationConfidence.CERTAIN
assert r.needs_human_review is False
def test_extractor_marks_bare_number_as_semantic_residue() -> None:
r = extract_student_math_answer(
"Donc 3 est la solution.",
expected_answer_kind=AnswerKind.SOLUTION_SET,
)
assert r.extracted_value == "3"
assert r.confidence == ValidationConfidence.PROBABLE
assert r.needs_human_review is True
assert r.reason == "bare_number_requires_semantic_confirmation"
|