github.com/elves/elvish@v0.15.0/pkg/eval/vals/equal_test.go (about) 1 package vals 2 3 import ( 4 "os" 5 "testing" 6 7 . "github.com/elves/elvish/pkg/tt" 8 ) 9 10 type customEqualer struct{ ret bool } 11 12 func (c customEqualer) Equal(interface{}) bool { return c.ret } 13 14 type customStruct struct{ a, b string } 15 16 func TestEqual(t *testing.T) { 17 Test(t, Fn("Equal", Equal), Table{ 18 Args(nil, nil).Rets(true), 19 Args(nil, "").Rets(false), 20 21 Args(true, true).Rets(true), 22 Args(true, false).Rets(false), 23 24 Args(1.0, 1.0).Rets(true), 25 26 Args("lorem", "lorem").Rets(true), 27 Args("lorem", "ipsum").Rets(false), 28 29 Args(os.Stdin, os.Stdin).Rets(true), 30 Args(os.Stdin, os.Stderr).Rets(false), 31 Args(os.Stdin, "").Rets(false), 32 Args(os.Stdin, 0).Rets(false), 33 34 Args(MakeList("a", "b"), MakeList("a", "b")).Rets(true), 35 Args(MakeList("a", "b"), MakeList("a")).Rets(false), 36 Args(MakeList("a", "b"), MakeList("a", "c")).Rets(false), 37 Args(MakeList("a", "b"), "").Rets(false), 38 Args(MakeList("a", "b"), 1.0).Rets(false), 39 40 Args(MakeMap("k", "v"), MakeMap("k", "v")).Rets(true), 41 Args(MakeMap("k", "v"), MakeMap("k2", "v")).Rets(false), 42 Args(MakeMap("k", "v", "k2", "v2"), MakeMap("k", "v")).Rets(false), 43 Args(MakeMap("k", "v"), "").Rets(false), 44 Args(MakeMap("k", "v"), 1.0).Rets(false), 45 46 Args(customEqualer{true}, 2).Rets(true), 47 Args(customEqualer{false}, 2).Rets(false), 48 49 Args(&customStruct{"a", "b"}, &customStruct{"a", "b"}).Rets(true), 50 }) 51 }