from __future__ import annotations import sys import unittest from pathlib import Path ROOT = Path(__file__).resolve().parents[1] sys.path.insert(0, str(ROOT / "src")) from euler_common import answer_is_correct, extract_final_answer # noqa: E402 class CommonTest(unittest.TestCase): def test_extracts_last_balanced_box(self) -> None: answer, kind = extract_final_answer(r"first \boxed{1}; final \boxed{\frac{3}{2}}") self.assertEqual(answer, r"\frac{3}{2}") self.assertEqual(kind, "boxed") def test_final_answer_is_diagnostic_fallback(self) -> None: answer, kind = extract_final_answer("work\nFINAL_ANSWER: 123,456") self.assertEqual(answer, "123,456") self.assertEqual(kind, "final_answer") def test_normalized_integer_answer(self) -> None: self.assertTrue(answer_is_correct("123,456", "123456")) self.assertFalse(answer_is_correct("123457", "123456")) if __name__ == "__main__": unittest.main()