func TestList(t *testing.T) { expr := ast.NewNestedFunction("eq", ast.NewNestedFunction("elem", ast.NewStringList( ast.NewStringConst("abc"), ), ast.NewIntConst(0), ), ast.NewStringConst("abc"), ) b, err := NewBool(expr) if err != nil { panic(err) } f, err := NewBoolFunc(b) if err != nil { panic(err) } str := funcs.Sprint(f.(*composedBool).Func) if str != "->true" { t.Fatalf("not enough trimming on %s", str) } r, err := f.Eval(nil) if err != nil { panic(err) } if r != true { t.Fatalf("expected true") } }
func TestNoTrim(t *testing.T) { expr := ast.NewNestedFunction("eq", ast.NewNestedFunction("elem", ast.NewStringList( ast.NewNestedFunction("print", ast.NewStringVar(), ), ), ast.NewIntConst(0), ), ast.NewStringConst("abc"), ) b, err := NewBool(expr) if err != nil { panic(err) } f, err := NewBoolFunc(b) if err != nil { panic(err) } str := funcs.Sprint(f.(*composedBool).Func) if str == "false" { t.Fatalf("too much trimming") } t.Logf("trimmed = %s", str) r, err := f.Eval(debug.NewStringValue("abc")) if err != nil { panic(err) } if r != true { t.Fatalf("expected true") } }