@@ -23,9 +23,12 @@ public void Setup()
23
23
[ TestCase ( "1.15215345346" , "1.15215345346" ) ]
24
24
[ TestCase ( "0" , "0" ) ]
25
25
[ TestCase ( "!2" , "2!" ) ]
26
+ [ TestCase ( "--1" , "-(-1)" ) ]
27
+ [ TestCase ( "1+sin(3)" , "1 + sin(3)" ) ]
28
+ [ TestCase ( "1+sin 3" , "1 + sin(3)" ) ]
26
29
public void ParseMathExpression ( string input , string expected )
27
30
{
28
- Tokenizer tokenizer = new Tokenizer ( input ) ;
31
+ Tokenizer tokenizer = new Tokenizer ( input , _context ) ;
29
32
Parser parser = new Parser ( tokenizer , _context ) ;
30
33
31
34
IExpression result = parser . Parse ( ) ;
@@ -56,8 +59,9 @@ public void ParseMathExpression(string input, string expected)
56
59
[ TestCase ( "1+" ) ]
57
60
[ TestCase ( "1." ) ]
58
61
[ TestCase ( "1..1" ) ]
59
- [ TestCase ( "-- 1" ) ]
62
+ [ TestCase ( "-* 1" ) ]
60
63
[ TestCase ( "-+1" ) ]
64
+ [ TestCase ( "+-1" ) ]
61
65
[ TestCase ( "{" ) ]
62
66
[ TestCase ( "}" ) ]
63
67
[ TestCase ( "asd" ) ]
@@ -67,7 +71,7 @@ public void ParseMathExpression(string input, string expected)
67
71
[ TestCase ( "1 + 2 1" ) ]
68
72
public void ParseBadExpression_Exception ( string input )
69
73
{
70
- Tokenizer tokenizer = new Tokenizer ( input ) ;
74
+ Tokenizer tokenizer = new Tokenizer ( input , _context ) ;
71
75
Parser parser = new Parser ( tokenizer , _context ) ;
72
76
73
77
MathException exception = Assert . Throws < MathException > ( ( ) => parser . Parse ( ) ) ;
@@ -84,7 +88,7 @@ public void ParseExpression_CustomOperators(string input, string expected)
84
88
context . RegisterBinary ( "pow" , ( a , b ) => a ) ;
85
89
context . RegisterUnary ( "rand" , ( a ) => a ) ;
86
90
87
- Tokenizer tokenizer = new Tokenizer ( input ) ;
91
+ Tokenizer tokenizer = new Tokenizer ( input , _context ) ;
88
92
Parser parser = new Parser ( tokenizer , context ) ;
89
93
90
94
IExpression result = parser . Parse ( ) ;
@@ -100,7 +104,7 @@ public void ParseExpression_CustomOperators_Exception(string expected)
100
104
{
101
105
MathContext context = new MathContext ( ) ;
102
106
103
- Tokenizer tokenizer = new Tokenizer ( expected ) ;
107
+ Tokenizer tokenizer = new Tokenizer ( expected , _context ) ;
104
108
Parser parser = new Parser ( tokenizer , context ) ;
105
109
106
110
MathException exception = Assert . Throws < MathException > ( ( ) => parser . Parse ( ) ) ;
@@ -119,7 +123,7 @@ public void ParseExpression_CustomOperators_Exception(string expected)
119
123
[ TestCase ( "{a13}" , "a13" ) ]
120
124
public void ParseVariableExpression ( string expected , string name )
121
125
{
122
- Tokenizer tokenizer = new Tokenizer ( expected ) ;
126
+ Tokenizer tokenizer = new Tokenizer ( expected , _context ) ;
123
127
Parser parser = new Parser ( tokenizer , _context ) ;
124
128
125
129
IExpression result = parser . Parse ( ) ;
@@ -139,7 +143,7 @@ public void ParseVariableExpression(string expected, string name)
139
143
[ TestCase ( "{-a}" ) ]
140
144
public void ParseVariableExpression_Exception ( string expected )
141
145
{
142
- Tokenizer tokenizer = new Tokenizer ( expected ) ;
146
+ Tokenizer tokenizer = new Tokenizer ( expected , _context ) ;
143
147
Parser parser = new Parser ( tokenizer , _context ) ;
144
148
145
149
MathException exception = Assert . Throws < MathException > ( ( ) => parser . Parse ( ) ) ;
@@ -159,7 +163,7 @@ public void ParseVariableExpression_Exception(string expected)
159
163
[ TestCase ( "1 / 2 / 3" , "1 / 2 / 3" ) ]
160
164
public void ParseBinaryExpression ( string input , string expected )
161
165
{
162
- Tokenizer tokenizer = new Tokenizer ( input ) ;
166
+ Tokenizer tokenizer = new Tokenizer ( input , _context ) ;
163
167
Parser parser = new Parser ( tokenizer , _context ) ;
164
168
165
169
IExpression result = parser . Parse ( ) ;
@@ -183,7 +187,7 @@ public void ParseBinaryExpression(string input, string expected)
183
187
[ TestCase ( "sqrt{a}" , "sqrt({a})" ) ]
184
188
public void ParseUnaryExpression ( string input , string expected )
185
189
{
186
- Tokenizer tokenizer = new Tokenizer ( input ) ;
190
+ Tokenizer tokenizer = new Tokenizer ( input , _context ) ;
187
191
Parser parser = new Parser ( tokenizer , _context ) ;
188
192
189
193
IExpression result = parser . Parse ( ) ;
@@ -199,7 +203,7 @@ public void ParseUnaryExpression(string input, string expected)
199
203
[ TestCase ( "+5" ) ]
200
204
public void ParseUnaryExpression_Exception ( string input )
201
205
{
202
- Tokenizer tokenizer = new Tokenizer ( input ) ;
206
+ Tokenizer tokenizer = new Tokenizer ( input , _context ) ;
203
207
Parser parser = new Parser ( tokenizer , _context ) ;
204
208
205
209
MathException exception = Assert . Throws < MathException > ( ( ) => parser . Parse ( ) ) ;
@@ -213,7 +217,7 @@ public void ParseUnaryExpression_Exception(string input)
213
217
[ TestCase ( "9999999" , "9999999" ) ]
214
218
public void ParseConstantExpression ( string input , string expected )
215
219
{
216
- Tokenizer tokenizer = new Tokenizer ( input ) ;
220
+ Tokenizer tokenizer = new Tokenizer ( input , _context ) ;
217
221
Parser parser = new Parser ( tokenizer , _context ) ;
218
222
219
223
IExpression result = parser . Parse ( ) ;
@@ -231,7 +235,7 @@ public void ParseConstantExpression(string input, string expected)
231
235
[ TestCase ( "9.01+" ) ]
232
236
public void ParseConstantExpression_Exception ( string expected )
233
237
{
234
- Tokenizer tokenizer = new Tokenizer ( expected ) ;
238
+ Tokenizer tokenizer = new Tokenizer ( expected , _context ) ;
235
239
Parser parser = new Parser ( tokenizer , _context ) ;
236
240
237
241
MathException exception = Assert . Throws < MathException > ( ( ) => parser . Parse ( ) ) ;
@@ -250,7 +254,7 @@ public void ParseConstantExpression_Exception(string expected)
250
254
[ TestCase ( "((5 - 2) + ((-1 + 2) * 3))" , "5 - 2 + (-1 + 2) * 3" ) ]
251
255
public void ParseGroupingExpression ( string input , string expected )
252
256
{
253
- Tokenizer tokenizer = new Tokenizer ( input ) ;
257
+ Tokenizer tokenizer = new Tokenizer ( input , _context ) ;
254
258
Parser parser = new Parser ( tokenizer , _context ) ;
255
259
256
260
IExpression result = parser . Parse ( ) ;
@@ -271,7 +275,7 @@ public void ParseGroupingExpression(string input, string expected)
271
275
[ TestCase ( "({a} + (1 + 2)" ) ]
272
276
public void ParseGroupingExpression_Fail ( string expected )
273
277
{
274
- Tokenizer tokenizer = new Tokenizer ( expected ) ;
278
+ Tokenizer tokenizer = new Tokenizer ( expected , _context ) ;
275
279
Parser parser = new Parser ( tokenizer , _context ) ;
276
280
277
281
MathException exception = Assert . Throws < MathException > ( ( ) => parser . Parse ( ) ) ;
0 commit comments