| 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.PredicateNode{ |
| 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 | } |