github.com/markusbkk/elvish@v0.0.0-20231204143114-91dc52438621/pkg/eval/vals/string_test.go (about) 1 package vals 2 3 import ( 4 "bytes" 5 "testing" 6 7 . "github.com/markusbkk/elvish/pkg/tt" 8 ) 9 10 func TestToString(t *testing.T) { 11 Test(t, Fn("ToString", ToString), Table{ 12 // string 13 Args("a").Rets("a"), 14 15 Args(1).Rets("1"), 16 17 // float64 18 Args(0.1).Rets("0.1"), 19 Args(42.0).Rets("42.0"), 20 // Whole numbers with more than 14 digits and trailing 0 are printed in 21 // scientific notation. 22 Args(1e13).Rets("10000000000000.0"), 23 Args(1e14).Rets("1e+14"), 24 Args(1e14 + 1).Rets("100000000000001.0"), 25 // Numbers smaller than 0.0001 are printed in scientific notation. 26 Args(0.0001).Rets("0.0001"), 27 Args(0.00001).Rets("1e-05"), 28 Args(0.00009).Rets("9e-05"), 29 30 // Stringer 31 Args(bytes.NewBufferString("buffer")).Rets("buffer"), 32 // None of the above: delegate to Repr 33 Args(true).Rets("$true"), 34 }) 35 }