@@ -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