MCPcopy Index your code
hub / github.com/google/mangle / TestListContains

Function TestListContains

functional/functional_test.go:46–84  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

44}
45
46func TestListContains(t *testing.T) {
47 tests := []struct {
48 listTerm ast.BaseTerm
49 memberTerm ast.BaseTerm
50 want ast.Constant
51 subst ast.Subst
52 }{
53 {ast.List([]ast.Constant{ast.Number(10), ast.Number(11), ast.Number(2)}), ast.Number(2), ast.TrueConstant, ast.ConstSubstMap{}},
54 {ast.ListNil, ast.Number(2), ast.FalseConstant, ast.ConstSubstMap{}},
55 {ast.List([]ast.Constant{ast.Number(10)}), ast.Number(2), ast.FalseConstant, ast.ConstSubstMap{}},
56 {
57 ast.List([]ast.Constant{ast.Number(10)}), ast.Variable{"X"}, ast.FalseConstant,
58 ast.ConstSubstMap{ast.Variable{"X"}: ast.Number(2)},
59 },
60 {
61 ast.List([]ast.Constant{ast.Number(2)}), ast.Variable{"X"}, ast.TrueConstant,
62 ast.ConstSubstMap{ast.Variable{"X"}: ast.Number(2)},
63 },
64 {
65 ast.Variable{"Y"},
66 ast.Variable{"X"},
67 ast.TrueConstant,
68 ast.ConstSubstMap{
69 ast.Variable{"X"}: ast.Number(2),
70 ast.Variable{"Y"}: ast.List([]ast.Constant{ast.Number(2)}),
71 },
72 },
73 }
74 for _, test := range tests {
75 term := ast.ApplyFn{symbols.ListContains, []ast.BaseTerm{test.listTerm, test.memberTerm}}
76 got, err := EvalExpr(term, test.subst)
77 if err != nil {
78 t.Fatal(err)
79 }
80 if got != test.want {
81 t.Errorf("TestListContains(%v, %v)=%v want %v.", term, test.subst, got, test.want)
82 }
83 }
84}
85
86func makeVarList(n int) []ast.Variable {
87 var vars []ast.Variable

Callers

nothing calls this directly

Calls 3

ListFunction · 0.92
NumberFunction · 0.92
EvalExprFunction · 0.85

Tested by

no test coverage detected