Skip to content

Commit c71e509

Browse files
CEL Dev Teamcopybara-github
authored andcommitted
Add more unit tests for ConstantFoldingOptimizer
PiperOrigin-RevId: 944969366
1 parent fe24e6e commit c71e509

1 file changed

Lines changed: 19 additions & 4 deletions

File tree

optimizer/src/test/java/dev/cel/optimizer/optimizers/ConstantFoldingOptimizerTest.java

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ private static Cel setupEnv(CelBuilder celBuilder) {
9494
.setContainer(CelContainer.ofName("cel.expr.conformance.proto3"))
9595
.setOptions(CEL_OPTIONS)
9696
.addCompilerLibraries(
97+
CelExtensions.comprehensions(),
9798
CelExtensions.bindings(),
9899
CelOptionalLibrary.INSTANCE,
99100
CelExtensions.math(CEL_OPTIONS),
@@ -228,6 +229,23 @@ private static Cel setupEnv(CelBuilder celBuilder) {
228229
@TestParameters("{source: 'true == false', expected: 'false'}")
229230
@TestParameters("{source: 'true == true', expected: 'true'}")
230231
@TestParameters("{source: 'false == true', expected: 'false'}")
232+
@TestParameters("{source: '[1, 2, 3].map(item, item * 2)', expected: '[2, 4, 6]'}")
233+
@TestParameters("{source: '[1, 2, 3].filter(item, item > 1)', expected: '[2, 3]'}")
234+
@TestParameters("{source: '[1, 2, 3].exists(item, item > 1)', expected: 'true'}")
235+
@TestParameters("{source: '[1, 2, 3].all(item, item > 1)', expected: 'false'}")
236+
@TestParameters("{source: '{\"a\": 1}.all(k, v, k == \"a\" || v > 0)', expected: 'true'}")
237+
@TestParameters(
238+
"{source: '{\"a\": 1, \"b\": x}.all(k, v, k == \"a\" || v > 0)', expected: '{\"a\": 1, \"b\":"
239+
+ " x}.all(k, v, k == \"a\" || v > 0)'}")
240+
@TestParameters("{source: '[1, 2].map(x, [3, 4].map(y, x + y))', expected: '[[4, 5], [5, 6]]'}")
241+
@TestParameters(
242+
"{source: '[1, 2, x].map(item, item * 2)', expected: '[1, 2, x].map(item, item * 2)'}")
243+
@TestParameters("{source: '[[1, 2], [3, 4]].map(x, x[0] == 1)', expected: '[true, false]'}")
244+
@TestParameters("{source: '[{\"a\": 1}].map(item, item.a) == [1]', expected: 'true'}")
245+
@TestParameters("{source: '[1].map(item, [1].exists(x, item == x))', expected: '[true]'}")
246+
@TestParameters("{source: '[{\"a\": 1}].map(x, x.a == 1)', expected: '[true]'}")
247+
@TestParameters(
248+
"{source: '[1, 2, x].map(item, item * 2)', expected: '[1, 2, x].map(item, item * 2)'}")
231249
@TestParameters("{source: 'false == false', expected: 'true'}")
232250
@TestParameters("{source: '10 == 42', expected: 'false'}")
233251
@TestParameters("{source: '42 == 42', expected: 'true'}")
@@ -561,10 +579,7 @@ public void iterationLimitReached_throws() throws Exception {
561579
Cel cel =
562580
runtimeFlavor
563581
.builder()
564-
.setOptions(
565-
CelOptions.current()
566-
.enableHeterogeneousNumericComparisons(true)
567-
.build())
582+
.setOptions(CelOptions.current().enableHeterogeneousNumericComparisons(true).build())
568583
.build();
569584
CelAbstractSyntaxTree ast = cel.compile("1 + 1").getAst();
570585
CelOptimizer optimizer =

0 commit comments

Comments
 (0)