hjkim00's picture
Restore all essential files - code, configs, and MBPP/HumanEval data
24c2665 verified
from .context import assert_equal, process_sympy
import pytest
def pytest_generate_tests(metafunc):
metafunc.parametrize('s', metafunc.cls.BAD_STRINGS)
class TestAllBad(object):
# These bad latex strings should raise an exception when parsed
BAD_STRINGS = [
"(",
")",
# "a / b /",
"\\frac{d}{dx}",
"(\\frac{d}{dx})"
"\\sqrt{}",
"\\sqrt",
"{",
"}",
# "1.1.1",
"\\mathit{TEST}"
"\\frac{2}{}",
"\\frac{}{2}",
"\\int",
# "1 +",
# "a +",
"!",
"!0",
"_",
"^",
# "a // b",
# "a \\cdot \\cdot b",
# "a \\div \\div b",
"a\\mod \\begin{matrix}b\\end{matrix}"
"|",
"||x|",
"\\lfloor x",
"\\lfloor a \\rceil",
"\\operatorname{floor}(12.3, 123.4)",
"()",
"((((((((((((((((()))))))))))))))))",
"-",
"\\frac{d}{dx} + \\frac{d}{dt}",
# "f()",
# "f(,",
# "f(x,,y)",
# "f(x,y,",
"\\sin^x",
"\\cos^2",
# "\\cos 1 \\cos",
# "\\gcd(3)",
# "\\lcm(2)",
"@", "#", "$", "%", "&", "*",
"\\",
"~",
"\\frac{(2 + x}{1 - x)}",
"\\lim_{\\pi \\to 3} a",
# because mix of COMMA and SEMICOLON
"\\left\\{\\begin{pmatrix}1\\\\2\\\\3\\end{pmatrix},\\begin{pmatrix}4\\\\3\\\\1\\end{pmatrix};\\begin{pmatrix}1\\\\1\\\\1\\end{pmatrix}\\right\\}",
# percentages without numbers before-hand
"a\\%",
"\\%100",
# dollar signs without numbers after
"\\$"
]
def test_bad_string(self, s):
with pytest.raises(Exception):
process_sympy(s)