| from sympy.core.singleton import S | |
| from sympy.core.symbol import symbols | |
| from sympy.parsing.ast_parser import parse_expr | |
| from sympy.testing.pytest import raises | |
| from sympy.core.sympify import SympifyError | |
| import warnings | |
| def test_parse_expr(): | |
| a, b = symbols('a, b') | |
| # tests issue_16393 | |
| assert parse_expr('a + b', {}) == a + b | |
| raises(SympifyError, lambda: parse_expr('a + ', {})) | |
| # tests Transform.visit_Constant | |
| assert parse_expr('1 + 2', {}) == S(3) | |
| assert parse_expr('1 + 2.0', {}) == S(3.0) | |
| # tests Transform.visit_Name | |
| assert parse_expr('Rational(1, 2)', {}) == S(1)/2 | |
| assert parse_expr('a', {'a': a}) == a | |
| # tests issue_23092 | |
| with warnings.catch_warnings(): | |
| warnings.simplefilter('error') | |
| assert parse_expr('6 * 7', {}) == S(42) | |