github.com/markusbkk/elvish@v0.0.0-20231204143114-91dc52438621/pkg/eval/vals/repr_test.go (about) 1 package vals 2 3 import ( 4 "fmt" 5 "math/big" 6 "os" 7 "testing" 8 9 . "github.com/markusbkk/elvish/pkg/tt" 10 ) 11 12 type reprer struct{} 13 14 func (reprer) Repr(int) string { return "<reprer>" } 15 16 type nonReprer struct{} 17 18 func TestReprPlain(t *testing.T) { 19 Test(t, Fn("ReprPlain", ReprPlain), Table{ 20 Args(nil).Rets("$nil"), 21 22 Args(false).Rets("$false"), 23 Args(true).Rets("$true"), 24 25 Args("foo").Rets("foo"), 26 27 Args(1).Rets("(num 1)"), 28 Args(bigInt(z)).Rets("(num " + z + ")"), 29 Args(big.NewRat(1, 2)).Rets("(num 1/2)"), 30 Args(1.0).Rets("(num 1.0)"), 31 Args(1e10).Rets("(num 10000000000.0)"), 32 33 Args(os.Stdin).Rets( 34 fmt.Sprintf("<file{%s %d}>", os.Stdin.Name(), os.Stdin.Fd())), 35 36 Args(EmptyList).Rets("[]"), 37 Args(MakeList("foo", "bar")).Rets("[foo bar]"), 38 39 Args(EmptyMap).Rets("[&]"), 40 Args(MakeMap("foo", "bar")).Rets("[&foo=bar]"), 41 42 Args(reprer{}).Rets("<reprer>"), 43 Args(nonReprer{}).Rets("<unknown {}>"), 44 }) 45 }