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  }