@@ -215,6 +215,16 @@ private class OperatorTest {
215215 Assert .areEqual (3 , Evaluator .run (' SIZE([...LIST(1, 2, 3)])' ));
216216 }
217217
218+ @IsTest
219+ private static void spreadOperatorsCanBeNested () {
220+ String formula = ' [...[1, 2], ...[3, 4], ...[5, 6]]' ;
221+ List <Object > result = (List <Object >)Evaluator .run (formula );
222+ Assert .areEqual (6 , result .size ());
223+ for (Integer i = 0 ; i < 6 ; i ++ ) {
224+ Assert .areEqual (i + 1 , result [i ]);
225+ }
226+ }
227+
218228 @IsTest
219229 private static void spreadOperatorCanBeUsedInsideOfAListFunction () {
220230 Assert .areEqual (3 , Evaluator .run (' SIZE(LIST(...LIST(1, 2, 3)))' ));
@@ -223,14 +233,23 @@ private class OperatorTest {
223233
224234 @IsTest
225235 private static void mapsSupportTheSpreadOperator () {
226- Map <Object , Object > result = (Map <Object , Object >) Evaluator .run (' {...{"a": 1, "b": 2}}' );
236+ Map <Object , Object > result = (Map <Object , Object >)Evaluator .run (' {...{"a": 1, "b": 2}}' );
237+ Assert .areEqual (1 , result .get (' a' ));
238+ Assert .areEqual (2 , result .get (' b' ));
239+ }
240+
241+ @IsTest
242+ private static void spreadOperatorsInMapsCanBeNested () {
243+ Map <Object , Object > result = (Map <Object , Object >)Evaluator .run (' {...{"a": 1, "b": 2}, ...{"c": 3, "d": 4}}' );
227244 Assert .areEqual (1 , result .get (' a' ));
228245 Assert .areEqual (2 , result .get (' b' ));
246+ Assert .areEqual (3 , result .get (' c' ));
247+ Assert .areEqual (4 , result .get (' d' ));
229248 }
230249
231250 @IsTest
232251 private static void spreadOperatorInMapRespectTheRightmostValue () {
233- Map <Object , Object > result = (Map <Object , Object >) Evaluator .run (' {...{"a": 1, "b": 2}, "b": 3}' );
252+ Map <Object , Object > result = (Map <Object , Object >)Evaluator .run (' {...{"a": 1, "b": 2}, "b": 3}' );
234253 Assert .areEqual (1 , result .get (' a' ));
235254 Assert .areEqual (3 , result .get (' b' ));
236255 }
@@ -248,8 +267,8 @@ private class OperatorTest {
248267 @IsTest
249268 private static void canPipeFunctionCallsMultipleTimes () {
250269 Object result = Evaluator .run (' [1, 2, 3, 4, 5, 6] -> WHERE($current > 2) -> WHERE($current < 5)' );
251- Assert .areEqual (2 , ((List <Object >) result ).size ());
252- Assert .areEqual (3 , ((List <Object >) result )[0 ]);
253- Assert .areEqual (4 , ((List <Object >) result )[1 ]);
270+ Assert .areEqual (2 , ((List <Object >)result ).size ());
271+ Assert .areEqual (3 , ((List <Object >)result )[0 ]);
272+ Assert .areEqual (4 , ((List <Object >)result )[1 ]);
254273 }
255274}
0 commit comments