github.com/kolbycrouch/elvish@v0.14.1-0.20210614162631-215b9ac1c423/pkg/eval/vals/repr_test.go (about) 1 package vals 2 3 import ( 4 "fmt" 5 "math/big" 6 "os" 7 "testing" 8 9 . "src.elv.sh/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 repr(a interface{}) string { return Repr(a, NoPretty) } 19 20 func TestRepr(t *testing.T) { 21 Test(t, Fn("repr", repr), Table{ 22 Args(nil).Rets("$nil"), 23 24 Args(false).Rets("$false"), 25 Args(true).Rets("$true"), 26 27 Args("foo").Rets("foo"), 28 29 Args(1).Rets("(num 1)"), 30 Args(bigInt(z)).Rets("(num " + z + ")"), 31 Args(big.NewRat(1, 2)).Rets("(num 1/2)"), 32 Args(1.0).Rets("(num 1.0)"), 33 Args(1e10).Rets("(num 10000000000.0)"), 34 35 Args(os.Stdin).Rets( 36 fmt.Sprintf("<file{%s %d}>", os.Stdin.Name(), os.Stdin.Fd())), 37 38 Args(EmptyList).Rets("[]"), 39 Args(MakeList("foo", "bar")).Rets("[foo bar]"), 40 41 Args(EmptyMap).Rets("[&]"), 42 Args(MakeMap("foo", "bar")).Rets("[&foo=bar]"), 43 44 Args(reprer{}).Rets("<reprer>"), 45 Args(nonReprer{}).Rets("<unknown {}>"), 46 }) 47 }