github.com/expr-lang/expr@v1.16.9/optimizer/sum_map_test.go (about) 1 package optimizer_test 2 3 import ( 4 "testing" 5 6 "github.com/expr-lang/expr/internal/testify/assert" 7 "github.com/expr-lang/expr/internal/testify/require" 8 9 "github.com/expr-lang/expr/ast" 10 "github.com/expr-lang/expr/optimizer" 11 "github.com/expr-lang/expr/parser" 12 ) 13 14 func TestOptimize_sum_map(t *testing.T) { 15 tree, err := parser.Parse(`sum(map(users, {.Age}))`) 16 require.NoError(t, err) 17 18 err = optimizer.Optimize(&tree.Node, nil) 19 require.NoError(t, err) 20 21 expected := &ast.BuiltinNode{ 22 Name: "sum", 23 Arguments: []ast.Node{ 24 &ast.IdentifierNode{Value: "users"}, 25 &ast.ClosureNode{ 26 Node: &ast.MemberNode{ 27 Node: &ast.PointerNode{}, 28 Property: &ast.StringNode{Value: "Age"}, 29 }, 30 }, 31 }, 32 } 33 34 assert.Equal(t, ast.Dump(expected), ast.Dump(tree.Node)) 35 }