mirror of
https://github.com/jefferyjob/go-easy-utils.git
synced 2025-09-27 11:22:29 +08:00
47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
package jsonUtil
|
|
|
|
import (
|
|
"github.com/stretchr/testify/assert"
|
|
"testing"
|
|
)
|
|
|
|
func TestToFloat64(t *testing.T) {
|
|
var iPtr = 90
|
|
testCases := []struct {
|
|
name string
|
|
value any
|
|
expected float64
|
|
expectedErr error
|
|
}{
|
|
{"空值", nil, 0, nil},
|
|
{"浮点数", float32(123.5), 123.5, nil},
|
|
{"字符串数", "123.456", 123.456, nil},
|
|
{"无符整型", uint(123), 123, nil},
|
|
{"无符uint8", uint8(123), 123, nil},
|
|
{"无符uint16", uint16(123), 123, nil},
|
|
{"无符uint32", uint32(123), 123, nil},
|
|
{"无符uint64", uint64(123), 123, nil},
|
|
{"有符整型", int(123), 123, nil},
|
|
{"有符int8", int8(123), 123, nil},
|
|
{"有符int16", int16(123), 123, nil},
|
|
{"有符int32", int32(123), 123, nil},
|
|
{"有符int64", int64(123), 123, nil},
|
|
{"复数64", complex64(1 + 2i), 1, nil},
|
|
{"复数128", complex128(1 + 2i), 1, nil},
|
|
{"布尔真", true, 1, nil},
|
|
{"布尔假", false, 0, nil},
|
|
{"空布尔指针", (*bool)(nil), 0, nil},
|
|
{"非空指针", &iPtr, 90, nil},
|
|
{"通道", make(chan int), 0, ErrType},
|
|
{"无效字符串", "abc", 0, ErrSyntax},
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
res, err := toFloat64Reflect(tc.value)
|
|
assert.Equal(t, tc.expectedErr, err)
|
|
assert.Equal(t, tc.expected, res)
|
|
})
|
|
}
|
|
}
|