Skip to content

Commit 49a20bf

Browse files
committed
added tests for perview
1 parent de0b71a commit 49a20bf

3 files changed

Lines changed: 97 additions & 1 deletion

File tree

evaluation_function/evaluation.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,11 @@ def evaluation_function(
101101
is_correct=False,
102102
feedback_items=[(BuildError, str(e))]
103103
)
104+
except ValueError as e:
105+
return Result(
106+
is_correct=False,
107+
feedback_items=[(BuildError, str(e))]
108+
)
104109

105110

106111
if equivalence:
@@ -132,6 +137,11 @@ def evaluation_function(
132137
is_correct=False,
133138
feedback_items=[(BuildError, str(e))]
134139
)
140+
except ValueError as e:
141+
return Result(
142+
is_correct=False,
143+
feedback_items=[(BuildError, str(e))]
144+
)
135145

136146
is_correct = EquivalenceEvaluator(formula, answer_formula).evaluate()
137147

evaluation_function/preview.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,5 +52,7 @@ def preview_function(response: Any, params: Params) -> Result:
5252

5353
except BuildError as e:
5454
return Result(preview=Preview(feedback = str(e)))
55+
except ValueError as e:
56+
return Result(preview=Preview(feedback = str(e)))
5557

56-
return Result(preview=Preview(latex=response))
58+
return Result(preview=Preview(latex=response, sympy=response))

evaluation_function/preview_test.py

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,87 @@ def test_preview(self):
2727

2828
self.assertIn("preview", result)
2929
self.assertIsNotNone(result["preview"])
30+
31+
def test_successful_and(self):
32+
response, params = "P ∧ Q", Params()
33+
result = preview_function(response, params)
34+
self.assertEqual(response, result.get("preview").get("latex"))
35+
self.assertEqual(response, result.get("preview").get("sympy"))
36+
37+
def test_successful_or(self):
38+
response, params = "P ∨ Q", Params()
39+
result = preview_function(response, params)
40+
self.assertEqual(response, result.get("preview").get("latex"))
41+
self.assertEqual(response, result.get("preview").get("sympy"))
42+
43+
def test_successful_not(self):
44+
response, params = "¬P", Params()
45+
result = preview_function(response, params)
46+
self.assertEqual(response, result.get("preview").get("latex"))
47+
self.assertEqual(response, result.get("preview").get("sympy"))
48+
49+
def test_successful_implies(self):
50+
response, params = "P → Q", Params()
51+
result = preview_function(response, params)
52+
self.assertEqual(response, result.get("preview").get("latex"))
53+
self.assertEqual(response, result.get("preview").get("sympy"))
54+
55+
def test_successful_biconditional(self):
56+
response, params = "P ↔ Q", Params()
57+
result = preview_function(response, params)
58+
self.assertEqual(response, result.get("preview").get("latex"))
59+
self.assertEqual(response, result.get("preview").get("sympy"))
60+
61+
def test_complex_expression(self):
62+
response, params = "(P ∧ Q) → (R ∨ S)", Params()
63+
result = preview_function(response, params)
64+
self.assertIn("preview", result)
65+
self.assertIsNotNone(result["preview"])
66+
67+
def test_nested_negation(self):
68+
response, params = "¬(¬P)", Params()
69+
result = preview_function(response, params)
70+
self.assertIn("preview", result)
71+
self.assertIsNotNone(result["preview"])
72+
73+
def test_multiple_operators(self):
74+
response, params = "P ∧ Q ∧ R", Params()
75+
result = preview_function(response, params)
76+
self.assertIn("preview", result)
77+
self.assertIsNotNone(result["preview"])
78+
79+
def test_parentheses(self):
80+
response, params = "(P ∧ Q) ∨ (R ∧ S)", Params()
81+
result = preview_function(response, params)
82+
self.assertIn("preview", result)
83+
self.assertIsNotNone(result["preview"])
84+
85+
def test_empty_string(self):
86+
response, params = "", Params()
87+
result = preview_function(response, params)
88+
self.assertIn("preview", result)
89+
90+
def test_invalid_syntax(self):
91+
response, params = "P ∧∧ Q", Params()
92+
result = preview_function(response, params)
93+
self.assertIn("preview", result)
94+
95+
def test_single_variable(self):
96+
response, params = "X", Params()
97+
result = preview_function(response, params)
98+
self.assertEqual(response, result.get("preview").get("latex"))
99+
self.assertEqual(response, result.get("preview").get("sympy"))
100+
101+
def test_multi_character_variable(self):
102+
response, params = "P1 ∧ Q2", Params()
103+
result = preview_function(response, params)
104+
self.assertIn("preview", result)
105+
self.assertIsNotNone(result["preview"])
106+
107+
def test_de_morgans_law_expression(self):
108+
response, params = "¬(P ∧ Q) ↔ (¬P ∨ ¬Q)", Params()
109+
result = preview_function(response, params)
110+
self.assertIn("preview", result)
111+
self.assertIsNotNone(result["preview"])
112+
113+

0 commit comments

Comments
 (0)