@@ -23,9 +23,12 @@ public void Setup()
2323 [ TestCase ( "1.15215345346" , "1.15215345346" ) ]
2424 [ TestCase ( "0" , "0" ) ]
2525 [ TestCase ( "!2" , "2!" ) ]
26+ [ TestCase ( "--1" , "-(-1)" ) ]
27+ [ TestCase ( "1+sin(3)" , "1 + sin(3)" ) ]
28+ [ TestCase ( "1+sin 3" , "1 + sin(3)" ) ]
2629 public void ParseMathExpression ( string input , string expected )
2730 {
28- Tokenizer tokenizer = new Tokenizer ( input ) ;
31+ Tokenizer tokenizer = new Tokenizer ( input , _context ) ;
2932 Parser parser = new Parser ( tokenizer , _context ) ;
3033
3134 IExpression result = parser . Parse ( ) ;
@@ -56,8 +59,9 @@ public void ParseMathExpression(string input, string expected)
5659 [ TestCase ( "1+" ) ]
5760 [ TestCase ( "1." ) ]
5861 [ TestCase ( "1..1" ) ]
59- [ TestCase ( "-- 1" ) ]
62+ [ TestCase ( "-* 1" ) ]
6063 [ TestCase ( "-+1" ) ]
64+ [ TestCase ( "+-1" ) ]
6165 [ TestCase ( "{" ) ]
6266 [ TestCase ( "}" ) ]
6367 [ TestCase ( "asd" ) ]
@@ -67,7 +71,7 @@ public void ParseMathExpression(string input, string expected)
6771 [ TestCase ( "1 + 2 1" ) ]
6872 public void ParseBadExpression_Exception ( string input )
6973 {
70- Tokenizer tokenizer = new Tokenizer ( input ) ;
74+ Tokenizer tokenizer = new Tokenizer ( input , _context ) ;
7175 Parser parser = new Parser ( tokenizer , _context ) ;
7276
7377 MathException exception = Assert . Throws < MathException > ( ( ) => parser . Parse ( ) ) ;
@@ -84,7 +88,7 @@ public void ParseExpression_CustomOperators(string input, string expected)
8488 context . RegisterBinary ( "pow" , ( a , b ) => a ) ;
8589 context . RegisterUnary ( "rand" , ( a ) => a ) ;
8690
87- Tokenizer tokenizer = new Tokenizer ( input ) ;
91+ Tokenizer tokenizer = new Tokenizer ( input , _context ) ;
8892 Parser parser = new Parser ( tokenizer , context ) ;
8993
9094 IExpression result = parser . Parse ( ) ;
@@ -100,7 +104,7 @@ public void ParseExpression_CustomOperators_Exception(string expected)
100104 {
101105 MathContext context = new MathContext ( ) ;
102106
103- Tokenizer tokenizer = new Tokenizer ( expected ) ;
107+ Tokenizer tokenizer = new Tokenizer ( expected , _context ) ;
104108 Parser parser = new Parser ( tokenizer , context ) ;
105109
106110 MathException exception = Assert . Throws < MathException > ( ( ) => parser . Parse ( ) ) ;
@@ -119,7 +123,7 @@ public void ParseExpression_CustomOperators_Exception(string expected)
119123 [ TestCase ( "{a13}" , "a13" ) ]
120124 public void ParseVariableExpression ( string expected , string name )
121125 {
122- Tokenizer tokenizer = new Tokenizer ( expected ) ;
126+ Tokenizer tokenizer = new Tokenizer ( expected , _context ) ;
123127 Parser parser = new Parser ( tokenizer , _context ) ;
124128
125129 IExpression result = parser . Parse ( ) ;
@@ -139,7 +143,7 @@ public void ParseVariableExpression(string expected, string name)
139143 [ TestCase ( "{-a}" ) ]
140144 public void ParseVariableExpression_Exception ( string expected )
141145 {
142- Tokenizer tokenizer = new Tokenizer ( expected ) ;
146+ Tokenizer tokenizer = new Tokenizer ( expected , _context ) ;
143147 Parser parser = new Parser ( tokenizer , _context ) ;
144148
145149 MathException exception = Assert . Throws < MathException > ( ( ) => parser . Parse ( ) ) ;
@@ -159,7 +163,7 @@ public void ParseVariableExpression_Exception(string expected)
159163 [ TestCase ( "1 / 2 / 3" , "1 / 2 / 3" ) ]
160164 public void ParseBinaryExpression ( string input , string expected )
161165 {
162- Tokenizer tokenizer = new Tokenizer ( input ) ;
166+ Tokenizer tokenizer = new Tokenizer ( input , _context ) ;
163167 Parser parser = new Parser ( tokenizer , _context ) ;
164168
165169 IExpression result = parser . Parse ( ) ;
@@ -183,7 +187,7 @@ public void ParseBinaryExpression(string input, string expected)
183187 [ TestCase ( "sqrt{a}" , "sqrt({a})" ) ]
184188 public void ParseUnaryExpression ( string input , string expected )
185189 {
186- Tokenizer tokenizer = new Tokenizer ( input ) ;
190+ Tokenizer tokenizer = new Tokenizer ( input , _context ) ;
187191 Parser parser = new Parser ( tokenizer , _context ) ;
188192
189193 IExpression result = parser . Parse ( ) ;
@@ -199,7 +203,7 @@ public void ParseUnaryExpression(string input, string expected)
199203 [ TestCase ( "+5" ) ]
200204 public void ParseUnaryExpression_Exception ( string input )
201205 {
202- Tokenizer tokenizer = new Tokenizer ( input ) ;
206+ Tokenizer tokenizer = new Tokenizer ( input , _context ) ;
203207 Parser parser = new Parser ( tokenizer , _context ) ;
204208
205209 MathException exception = Assert . Throws < MathException > ( ( ) => parser . Parse ( ) ) ;
@@ -213,7 +217,7 @@ public void ParseUnaryExpression_Exception(string input)
213217 [ TestCase ( "9999999" , "9999999" ) ]
214218 public void ParseConstantExpression ( string input , string expected )
215219 {
216- Tokenizer tokenizer = new Tokenizer ( input ) ;
220+ Tokenizer tokenizer = new Tokenizer ( input , _context ) ;
217221 Parser parser = new Parser ( tokenizer , _context ) ;
218222
219223 IExpression result = parser . Parse ( ) ;
@@ -231,7 +235,7 @@ public void ParseConstantExpression(string input, string expected)
231235 [ TestCase ( "9.01+" ) ]
232236 public void ParseConstantExpression_Exception ( string expected )
233237 {
234- Tokenizer tokenizer = new Tokenizer ( expected ) ;
238+ Tokenizer tokenizer = new Tokenizer ( expected , _context ) ;
235239 Parser parser = new Parser ( tokenizer , _context ) ;
236240
237241 MathException exception = Assert . Throws < MathException > ( ( ) => parser . Parse ( ) ) ;
@@ -250,7 +254,7 @@ public void ParseConstantExpression_Exception(string expected)
250254 [ TestCase ( "((5 - 2) + ((-1 + 2) * 3))" , "5 - 2 + (-1 + 2) * 3" ) ]
251255 public void ParseGroupingExpression ( string input , string expected )
252256 {
253- Tokenizer tokenizer = new Tokenizer ( input ) ;
257+ Tokenizer tokenizer = new Tokenizer ( input , _context ) ;
254258 Parser parser = new Parser ( tokenizer , _context ) ;
255259
256260 IExpression result = parser . Parse ( ) ;
@@ -271,7 +275,7 @@ public void ParseGroupingExpression(string input, string expected)
271275 [ TestCase ( "({a} + (1 + 2)" ) ]
272276 public void ParseGroupingExpression_Fail ( string expected )
273277 {
274- Tokenizer tokenizer = new Tokenizer ( expected ) ;
278+ Tokenizer tokenizer = new Tokenizer ( expected , _context ) ;
275279 Parser parser = new Parser ( tokenizer , _context ) ;
276280
277281 MathException exception = Assert . Throws < MathException > ( ( ) => parser . Parse ( ) ) ;
0 commit comments