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  }