| import time |
| from unittest.mock import patch |
|
|
| from math_verify.grader import verify |
| from math_verify.parser import parse |
|
|
|
|
| @patch("math_verify.parser.parse_expr") |
| def test_timeout_expr(mock_parse_expr): |
| |
| def delayed_parse(*args, **kwargs): |
| time.sleep(5) |
| return "parsed_expr" |
|
|
| mock_parse_expr.side_effect = delayed_parse |
|
|
| |
| x = parse( |
| "1+1", |
| parsing_timeout=1, |
| extraction_mode="first_match", |
| fallback_mode="no_fallback", |
| ) |
| assert x == [] |
|
|
|
|
| @patch("math_verify.parser.latex2sympy") |
| def test_timeout_latex(mock_parse_latex): |
| |
| def delayed_parse(*args, **kwargs): |
| time.sleep(5) |
| return "parsed_expr" |
|
|
| mock_parse_latex.side_effect = delayed_parse |
|
|
| |
| x = parse( |
| "$1+1$", |
| parsing_timeout=1, |
| extraction_mode="first_match", |
| fallback_mode="no_fallback", |
| ) |
| assert x == [] |
|
|
|
|
| @patch("math_verify.grader.sympy_expr_eq") |
| def test_timeout_verify(mock_verify): |
| |
| def delayed_sympy_expr_eq(*args, **kwargs): |
| time.sleep(5) |
| return True |
|
|
| mock_verify.side_effect = delayed_sympy_expr_eq |
|
|
| gold = [parse("1+1")[0]] |
| assert not verify(gold, gold, timeout_seconds=1) |
|
|