goyave.dev/goyave/v4@v4.4.11/util/typeutil/typeutil_test.go (about) 1 package typeutil 2 3 import ( 4 "math" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestToFloat64(t *testing.T) { 11 v, err := ToFloat64(1) 12 assert.Nil(t, err) 13 assert.Equal(t, 1.0, v) 14 15 v, err = ToFloat64("1") 16 assert.Nil(t, err) 17 assert.Equal(t, 1.0, v) 18 19 v, err = ToFloat64(uint(5)) 20 assert.Nil(t, err) 21 assert.Equal(t, 5.0, v) 22 23 v, err = ToFloat64("1.58") 24 assert.Nil(t, err) 25 assert.Equal(t, 1.58, v) 26 27 v, err = ToFloat64(1.5) 28 assert.Nil(t, err) 29 assert.Equal(t, 1.5, v) 30 31 v, err = ToFloat64("NaN") 32 assert.Nil(t, err) 33 assert.True(t, math.IsNaN(v)) 34 35 v, err = ToFloat64([]string{}) 36 assert.NotNil(t, err) 37 assert.Equal(t, float64(0), v) 38 } 39 40 func TestToString(t *testing.T) { 41 assert.Equal(t, "12", ToString(12)) 42 assert.Equal(t, "-12", ToString(-12)) 43 assert.Equal(t, "12.5", ToString(12.5)) 44 assert.Equal(t, "-12.5", ToString(-12.5)) 45 assert.Equal(t, "true", ToString(true)) 46 assert.Equal(t, "[test]", ToString([]string{"test"})) 47 }