@@ -372,19 +372,24 @@ func TestCelCostStability(t *testing.T) {
372
372
"!('c' in self.val)" : 4 ,
373
373
"'d' in self.val" : 3 ,
374
374
// field selection also possible if map key is a valid CEL identifier
375
- "!has(self.val.a)" : 3 ,
376
- "has(self.val.b)" : 2 ,
377
- "!has(self.val.c)" : 3 ,
378
- "has(self.val.d)" : 2 ,
379
- "self.val.all(k, self.val[k] > 0)" : 17 ,
375
+ "!has(self.val.a)" : 3 ,
376
+ "has(self.val.b)" : 2 ,
377
+ "!has(self.val.c)" : 3 ,
378
+ "has(self.val.d)" : 2 ,
379
+ "self.val.all(k, self.val[k] > 0)" : 17 ,
380
+ // It is important that the condition does not match in this exists test
381
+ // since the map iteration order is non-deterministic, and exists short circuits when it matches.
382
+ "!self.val.exists(k, self.val[k] == 3)" : 20 ,
380
383
"self.val.exists_one(k, self.val[k] == 2)" : 14 ,
381
384
"!self.val.exists_one(k, self.val[k] > 0)" : 17 ,
382
385
"size(self.val) == 2" : 4 ,
383
386
"size(self.val.filter(k, self.val[k] > 1)) == 1" : 26 ,
384
387
385
388
// two variable comprehensions
386
- "self.val.all(k, v, v > 0)" : 13 ,
387
- "self.val.exists(k, v, v == 2)" : 15 ,
389
+ "self.val.all(k, v, v > 0)" : 13 ,
390
+ // It is important that the condition does not match in this exists test
391
+ // since the map iteration order is non-deterministic, and exists short circuits when it matches.
392
+ "!self.val.exists(k, v, v == 3)" : 16 ,
388
393
"self.val.existsOne(k, v, v == 2)" : 10 ,
389
394
"self.val.transformMap(k, v, v > 1, v + 1).size() == 1" : 14 ,
390
395
"self.val.transformMap(k, v, v + 1).size() == 2" : 15 ,
0 commit comments