@@ -52,6 +52,13 @@ void Test(string input) {
5252 [ InlineData ( ".9876543210" , "0.9876543210" , "0.9876543210" ) ]
5353 [ InlineData ( "1234.5678" , @"\frac{6172839}{5000}" , @"\frac{6172839}{5000}" ) ]
5454 [ InlineData ( @"\infty" , @"\infty " , @"\infty " ) ]
55+ [ InlineData ( @"1_2" , @"1" , @"1" ) ]
56+ [ InlineData ( @"10_2" , @"2" , @"2" ) ]
57+ [ InlineData ( @"1._2" , @"1" , @"1" ) ]
58+ [ InlineData ( @"1.1_2" , @"\frac{3}{2}" , @"\frac{3}{2}" ) ]
59+ [ InlineData ( @".1_3" , @"\frac{1}{3}" , @"\frac{1}{3}" ) ]
60+ [ InlineData ( @"10_3" , @"3" , @"3" ) ]
61+ [ InlineData ( @"10.1_3" , @"\frac{10}{3}" , @"\frac{10}{3}" ) ]
5562 public void Numbers ( string input , string converted , string output ) =>
5663 Test ( input , converted , output ) ;
5764 [ Theory ]
@@ -174,10 +181,10 @@ public void Numbers(string input, string converted, string output) =>
174181 [ InlineData ( "a/-a" , @"\frac{a}{-a}" , "-1" ) ]
175182 [ InlineData ( "+a/+a" , @"\frac{a}{a}" , "1" ) ]
176183 [ InlineData ( "-a/-a" , @"\frac{-a}{-a}" , "1" ) ]
177- [ InlineData ( "-2+-2+-2" , @"-2-2-2" , "-6" ) ]
178- [ InlineData ( "-2--2--2" , @"-2--2--2" , "2" ) ]
179- [ InlineData ( "-2*-2*-2" , @"\left( -1\right) \cdot 2\cdot \left( -1\right) \cdot 2\cdot \left( -1\right) \cdot 2" , "-8" ) ]
180- [ InlineData ( "-2/-2/-2" , @"\frac{\frac{-2}{-2}}{-2}" , @"\frac{-1}{2}" ) ]
184+ [ InlineData ( @ "-2+-2+-2", @"-2-2-2" , "-6" ) ]
185+ [ InlineData ( @ "-2--2--2", @"-2--2--2" , "2" ) ]
186+ [ InlineData ( @ "-2*-2*-2", @"\left( -1\right) \cdot 2\cdot \left( -1\right) \cdot 2\cdot \left( -1\right) \cdot 2" , "-8" ) ]
187+ [ InlineData ( @ "-2/-2/-2", @"\frac{\frac{-2}{-2}}{-2}" , @"\frac{-1}{2}" ) ]
181188 public void UnaryOperators ( string latex , string converted , string result ) => Test ( latex , converted , result ) ;
182189 [ Theory ]
183190 [ InlineData ( @"9\%" , @"\frac{9}{100}" , @"\frac{9}{100}" ) ]
@@ -556,7 +563,6 @@ public void Intervals(string latex, string converted, string result) {
556563 [ InlineData ( @"1\degree_7" , "Subscripts are unsupported for Ordinary °" ) ]
557564 [ InlineData ( @"\dagger_8" , "Unsupported Unary Operator †" ) ]
558565 [ InlineData ( @"." , "Invalid number: ." ) ]
559- [ InlineData ( @"1._2" , "Subscripts are unsupported for Number 1." ) ]
560566 [ InlineData ( @".." , "Invalid number: .." ) ]
561567 [ InlineData ( @"1.." , "Invalid number: 1.." ) ]
562568 [ InlineData ( @"..1" , "Invalid number: ..1" ) ]
@@ -703,5 +709,35 @@ public void Error(string badLaTeX, string error) =>
703709 [ InlineData ( "i+2i" , @"i+2i" ) ]
704710 public void SimpleArithmeticSyntax ( string simpleSyntax , string latex ) =>
705711 Assert . Equal ( latex , LaTeXParser . MathListToLaTeX ( Evaluation . Visualize ( ( Entity ) simpleSyntax ) ) . ToString ( ) ) ;
712+ [ Theory ]
713+ [ InlineData ( @"\operatorname{true}" , @"\operatorname{True} " , @"\operatorname{True} " , Skip = "Awaiting AngouriMath update" ) ]
714+ [ InlineData ( @"\operatorname{false}" , @"\operatorname{False} " , @"\operatorname{False} " , Skip = "Awaiting AngouriMath update" ) ]
715+ [ InlineData ( @"\neg\operatorname{true}" , @"\neg \operatorname{True} " , @"\operatorname{False} " , Skip = "Awaiting AngouriMath update" ) ]
716+ [ InlineData ( @"\neg\operatorname{false}" , @"\neg \operatorname{False} " , @"\operatorname{True} " , Skip = "Awaiting AngouriMath update" ) ]
717+ [ InlineData ( @"\operatorname{true}\land\operatorname{true}" , @"\operatorname{True} \land \operatorname{True} " , @"\operatorname{True} " , Skip = "Awaiting AngouriMath update" ) ]
718+ [ InlineData ( @"\operatorname{true}\land\operatorname{false}" , @"\operatorname{True} \land \operatorname{False} " , @"\operatorname{False} " , Skip = "Awaiting AngouriMath update" ) ]
719+ [ InlineData ( @"\operatorname{false}\land\operatorname{true}" , @"\operatorname{False} \land \operatorname{True} " , @"\operatorname{False} " , Skip = "Awaiting AngouriMath update" ) ]
720+ [ InlineData ( @"\operatorname{false}\land\operatorname{false}" , @"\operatorname{False} \land \operatorname{False} " , @"\operatorname{False} " , Skip = "Awaiting AngouriMath update" ) ]
721+ [ InlineData ( @"\operatorname{true}\lor\operatorname{true}" , @"\operatorname{True} \lor \operatorname{True} " , @"\operatorname{True} " , Skip = "Awaiting AngouriMath update" ) ]
722+ [ InlineData ( @"\operatorname{true}\lor\operatorname{false}" , @"\operatorname{True} \lor \operatorname{False} " , @"\operatorname{True} " , Skip = "Awaiting AngouriMath update" ) ]
723+ [ InlineData ( @"\operatorname{false}\lor\operatorname{true}" , @"\operatorname{False} \lor \operatorname{True} " , @"\operatorname{True} " , Skip = "Awaiting AngouriMath update" ) ]
724+ [ InlineData ( @"\operatorname{false}\lor\operatorname{false}" , @"\operatorname{False} \lor \operatorname{False} " , @"\operatorname{False} " , Skip = "Awaiting AngouriMath update" ) ]
725+ [ InlineData ( @"\operatorname{true}\oplus\operatorname{true}" , @"\operatorname{True} \oplus \operatorname{True} " , @"\operatorname{False} " , Skip = "Awaiting AngouriMath update" ) ]
726+ [ InlineData ( @"\operatorname{true}\oplus\operatorname{false}" , @"\operatorname{True} \oplus \operatorname{False} " , @"\operatorname{True} " , Skip = "Awaiting AngouriMath update" ) ]
727+ [ InlineData ( @"\operatorname{false}\oplus\operatorname{true}" , @"\operatorname{False} \oplus \operatorname{True} " , @"\operatorname{True} " , Skip = "Awaiting AngouriMath update" ) ]
728+ [ InlineData ( @"\operatorname{false}\oplus\operatorname{false}" , @"\operatorname{False} \oplus \operatorname{False} " , @"\operatorname{False} " , Skip = "Awaiting AngouriMath update" ) ]
729+ [ InlineData ( @"x=x" , @"x=x" , @"\operatorname{True} " ) ]
730+ [ InlineData ( @"x\leq x" , @"x\leqslant x" , @"\operatorname{True} " ) ]
731+ [ InlineData ( @"x\neq y" , @"\neg x=y" , @"\neg x=y" ) ]
732+ [ InlineData ( @"1<2" , @"1<2" , @"\operatorname{True} " ) ]
733+ [ InlineData ( @"2<1" , @"2<1" , @"\operatorname{False} " ) ]
734+ [ InlineData ( @"1\le1" , @"1\leqslant 1" , @"\operatorname{True} " ) ]
735+ [ InlineData ( @"2>1" , @"2>1" , @"\operatorname{True} " ) ]
736+ [ InlineData ( @"1>2" , @"1>2" , @"\operatorname{False} " ) ]
737+ [ InlineData ( @"1\ge1" , @"1\geqslant 1" , @"\operatorname{True} " ) ]
738+ [ InlineData ( @"x\in\{x,y\}" , @"x\in \left\{ x,y\right\} " , @"\operatorname{True} " ) ]
739+ [ InlineData ( @"z\notin\{x,y\}" , @"\neg z\in \left\{ x,y\right\} " , @"\operatorname{True} " ) ]
740+ [ InlineData ( @"\{x,y\}\ni x" , @"x\in \left\{ x,y\right\} " , @"\operatorname{True} " ) ]
741+ public void LogicalAndRelationalOperators ( string latex , string converted , string result ) => Test ( latex , converted , result ) ;
706742 }
707743}
0 commit comments