MCPcopy Create free account
hub / github.com/cel-expr/cel-go / TestInliningOptimizerNoopShadow

Function TestInliningOptimizerNoopShadow

cel/inlining_test.go:25–114  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

23)
24
25func TestInliningOptimizerNoopShadow(t *testing.T) {
26 type varExpr struct {
27 name string
28 alias string
29 t *cel.Type
30 expr string
31 }
32 tests := []struct {
33 name string
34 expr string
35 vars []varExpr
36 inlined string
37 }{
38 {
39 name: "shadow at parent",
40 expr: `[0].exists(shadowed_ident, shadowed_ident == 0)`,
41 vars: []varExpr{
42 {
43 name: "shadowed_ident",
44 t: cel.IntType,
45 expr: "1",
46 },
47 },
48 inlined: `[0].exists(shadowed_ident, shadowed_ident == 0)`,
49 },
50 {
51 name: "shadow in ancestor",
52 expr: `[[1]].all(shadowed_ident, shadowed_ident.all(shadowed, shadowed + 1 == 2))`,
53 vars: []varExpr{
54 {
55 name: "shadowed_ident",
56 t: cel.IntType,
57 expr: "42",
58 },
59 },
60 inlined: `[[1]].all(shadowed_ident, shadowed_ident.all(shadowed, shadowed + 1 == 2))`,
61 },
62 }
63 for _, tst := range tests {
64 tc := tst
65 t.Run(tc.name, func(t *testing.T) {
66 opts := []cel.EnvOption{
67 cel.OptionalTypes(),
68 cel.EnableMacroCallTracking(),
69 }
70 varDecls := make([]cel.EnvOption, len(tc.vars))
71 for i, v := range tc.vars {
72 varDecls[i] = cel.Variable(v.name, v.t)
73 }
74 e, err := cel.NewEnv(append(varDecls, opts...)...)
75 if err != nil {
76 t.Fatalf("NewEnv() failed: %v", err)
77 }
78 inlinedVars := []*cel.InlineVariable{}
79 for _, v := range tc.vars {
80 if v.expr == "" {
81 continue
82 }

Callers

nothing calls this directly

Calls 12

CompileMethod · 0.95
OptimizeMethod · 0.95
OptionalTypesFunction · 0.92
EnableMacroCallTrackingFunction · 0.92
VariableFunction · 0.92
NewEnvFunction · 0.92
NewInlineVariableFunction · 0.92
NewStaticOptimizerFunction · 0.92
NewInliningOptimizerFunction · 0.92
AstToStringFunction · 0.92
ErrMethod · 0.80

Tested by

no test coverage detected