1
- using FluentAssertions ;
1
+ using FluentAssertions ;
2
2
using System . Collections . Generic ;
3
3
using System . Globalization ;
4
4
using System . Linq . Dynamic . Core . Parser ;
@@ -15,15 +15,15 @@ public static object[][] Decimals()
15
15
{
16
16
return new object [ ] [ ]
17
17
{
18
- new object [ ] { "de-DE" , "1" , 1m } ,
19
- new object [ ] { "de-DE" , "-42" , - 42m } ,
20
- new object [ ] { "de-DE" , "3,215" , 3.215m } ,
21
- new object [ ] { "de-DE" , "3.215" , 3215m } ,
22
-
23
- new object [ ] { null , "1" , 1m } ,
24
- new object [ ] { null , "-42" , - 42m } ,
25
- new object [ ] { null , "3,215" , 3215m } ,
26
- new object [ ] { null , "3.215" , 3.215m }
18
+ new object [ ] { "de-DE" , "1" , 1m } ,
19
+ new object [ ] { "de-DE" , "-42" , - 42m } ,
20
+ new object [ ] { "de-DE" , "3,215" , 3.215m } ,
21
+ new object [ ] { "de-DE" , "3.215" , 3215m } ,
22
+
23
+ new object [ ] { null , "1" , 1m } ,
24
+ new object [ ] { null , "-42" , - 42m } ,
25
+ new object [ ] { null , "3,215" , 3215m } ,
26
+ new object [ ] { null , "3.215" , 3.215m }
27
27
} ;
28
28
}
29
29
@@ -48,23 +48,23 @@ public static object[][] Floats()
48
48
{
49
49
return new object [ ] [ ]
50
50
{
51
- new object [ ] { "de-DE" , "1" , 1f } ,
52
- new object [ ] { "de-DE" , "-42" , - 42f } ,
53
- new object [ ] { "de-DE" , "3,215" , 3.215f } ,
54
- new object [ ] { "de-DE" , "3.215" , 3215f } ,
55
- new object [ ] { "de-DE" , "1,2345E-4" , 0.00012345f } ,
56
- new object [ ] { "de-DE" , "1,2345e-4" , 0.00012345f } ,
57
- new object [ ] { "de-DE" , "1,2345E4" , 12345d } ,
58
- new object [ ] { "de-DE" , "1,2345e4" , 12345d } ,
59
-
60
- new object [ ] { null , "1" , 1f } ,
61
- new object [ ] { null , "-42" , - 42f } ,
62
- new object [ ] { null , "3,215" , 3215f } ,
63
- new object [ ] { null , "3.215" , 3.215f } ,
64
- new object [ ] { null , "1.2345E-4" , 0.00012345f } ,
65
- new object [ ] { null , "1.2345e-4" , 0.00012345f } ,
66
- new object [ ] { null , "1.2345E4" , 12345f } ,
67
- new object [ ] { null , "1.2345e4" , 12345f }
51
+ new object [ ] { "de-DE" , "1" , 1f } ,
52
+ new object [ ] { "de-DE" , "-42" , - 42f } ,
53
+ new object [ ] { "de-DE" , "3,215" , 3.215f } ,
54
+ new object [ ] { "de-DE" , "3.215" , 3215f } ,
55
+ new object [ ] { "de-DE" , "1,2345E-4" , 0.00012345f } ,
56
+ new object [ ] { "de-DE" , "1,2345e-4" , 0.00012345f } ,
57
+ new object [ ] { "de-DE" , "1,2345E4" , 12345d } ,
58
+ new object [ ] { "de-DE" , "1,2345e4" , 12345d } ,
59
+
60
+ new object [ ] { null , "1" , 1f } ,
61
+ new object [ ] { null , "-42" , - 42f } ,
62
+ new object [ ] { null , "3,215" , 3215f } ,
63
+ new object [ ] { null , "3.215" , 3.215f } ,
64
+ new object [ ] { null , "1.2345E-4" , 0.00012345f } ,
65
+ new object [ ] { null , "1.2345e-4" , 0.00012345f } ,
66
+ new object [ ] { null , "1.2345E4" , 12345f } ,
67
+ new object [ ] { null , "1.2345e4" , 12345f }
68
68
} ;
69
69
}
70
70
@@ -89,23 +89,23 @@ public static IEnumerable<object[]> Doubles()
89
89
{
90
90
return new object [ ] [ ]
91
91
{
92
- new object [ ] { "de-DE" , "1" , 1d } ,
93
- new object [ ] { "de-DE" , "-42" , - 42d } ,
94
- new object [ ] { "de-DE" , "3,215" , 3.215d } ,
95
- new object [ ] { "de-DE" , "3.215" , 3215d } ,
96
- new object [ ] { "de-DE" , "1,2345E-4" , 0.00012345d } ,
97
- new object [ ] { "de-DE" , "1,2345e-4" , 0.00012345d } ,
98
- new object [ ] { "de-DE" , "1,2345E4" , 12345d } ,
99
- new object [ ] { "de-DE" , "1,2345e4" , 12345d } ,
100
-
101
- new object [ ] { null , "1" , 1d } ,
102
- new object [ ] { null , "-42" , - 42d } ,
103
- new object [ ] { null , "3,215" , 3215d } ,
104
- new object [ ] { null , "3.215" , 3.215d } ,
105
- new object [ ] { null , "1.2345E-4" , 0.00012345d } ,
106
- new object [ ] { null , "1.2345e-4" , 0.00012345d } ,
107
- new object [ ] { null , "1.2345E4" , 12345d } ,
108
- new object [ ] { null , "1.2345e4" , 12345d }
92
+ new object [ ] { "de-DE" , "1" , 1d } ,
93
+ new object [ ] { "de-DE" , "-42" , - 42d } ,
94
+ new object [ ] { "de-DE" , "3,215" , 3.215d } ,
95
+ new object [ ] { "de-DE" , "3.215" , 3215d } ,
96
+ new object [ ] { "de-DE" , "1,2345E-4" , 0.00012345d } ,
97
+ new object [ ] { "de-DE" , "1,2345e-4" , 0.00012345d } ,
98
+ new object [ ] { "de-DE" , "1,2345E4" , 12345d } ,
99
+ new object [ ] { "de-DE" , "1,2345e4" , 12345d } ,
100
+
101
+ new object [ ] { null , "1" , 1d } ,
102
+ new object [ ] { null , "-42" , - 42d } ,
103
+ new object [ ] { null , "3,215" , 3215d } ,
104
+ new object [ ] { null , "3.215" , 3.215d } ,
105
+ new object [ ] { null , "1.2345E-4" , 0.00012345d } ,
106
+ new object [ ] { null , "1.2345e-4" , 0.00012345d } ,
107
+ new object [ ] { null , "1.2345E4" , 12345d } ,
108
+ new object [ ] { null , "1.2345e4" , 12345d }
109
109
} ;
110
110
}
111
111
@@ -152,5 +152,53 @@ public void NumberParser_ParseIntegerLiteral(string text, double expected)
152
152
// Assert
153
153
result . Value . Should ( ) . Be ( expected ) ;
154
154
}
155
+
156
+ [ Theory ]
157
+ [ InlineData ( "42" , 'm' , 42 ) ]
158
+ [ InlineData ( "-42" , 'm' , - 42 ) ]
159
+ [ InlineData ( "42m" , 'm' , 42 ) ]
160
+ [ InlineData ( "-42m" , 'm' , - 42 ) ]
161
+ public void NumberParser_ParseDecimalLiteral ( string text , char qualifier , decimal expected )
162
+ {
163
+ // Arrange
164
+
165
+ // Act
166
+ var result = new NumberParser ( _parsingConfig ) . ParseRealLiteral ( text , qualifier , true ) as ConstantExpression ;
167
+
168
+ // Assert
169
+ result ! . Value . Should ( ) . Be ( expected ) ;
170
+ }
171
+
172
+ [ Theory ]
173
+ [ InlineData ( "42" , 'd' , 42 ) ]
174
+ [ InlineData ( "-42" , 'd' , - 42 ) ]
175
+ [ InlineData ( "42d" , 'd' , 42 ) ]
176
+ [ InlineData ( "-42d" , 'd' , - 42 ) ]
177
+ public void NumberParser_ParseDoubleLiteral ( string text , char qualifier , double expected )
178
+ {
179
+ // Arrange
180
+
181
+ // Act
182
+ var result = new NumberParser ( _parsingConfig ) . ParseRealLiteral ( text , qualifier , true ) as ConstantExpression ;
183
+
184
+ // Assert
185
+ result ! . Value . Should ( ) . Be ( expected ) ;
186
+ }
187
+
188
+ [ Theory ]
189
+ [ InlineData ( "42" , 'f' , 42 ) ]
190
+ [ InlineData ( "-42" , 'f' , - 42 ) ]
191
+ [ InlineData ( "42f" , 'f' , 42 ) ]
192
+ [ InlineData ( "-42f" , 'f' , - 42 ) ]
193
+ public void NumberParser_ParseFloatLiteral ( string text , char qualifier , float expected )
194
+ {
195
+ // Arrange
196
+
197
+ // Act
198
+ var result = new NumberParser ( _parsingConfig ) . ParseRealLiteral ( text , qualifier , true ) as ConstantExpression ;
199
+
200
+ // Assert
201
+ result ! . Value . Should ( ) . Be ( expected ) ;
202
+ }
155
203
}
156
204
}
0 commit comments