github.com/wuhuizuo/gomplate@v3.5.0+incompatible/funcs/time_test.go (about) 1 package funcs 2 3 import ( 4 "math" 5 "math/big" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestParseNum(t *testing.T) { 12 i, f, _ := parseNum("42") 13 assert.Equal(t, int64(42), i) 14 assert.Equal(t, int64(0), f) 15 16 i, f, _ = parseNum(42) 17 assert.Equal(t, int64(42), i) 18 assert.Equal(t, int64(0), f) 19 20 i, f, _ = parseNum(big.NewInt(42)) 21 assert.Equal(t, int64(42), i) 22 assert.Equal(t, int64(0), f) 23 24 i, f, _ = parseNum(big.NewFloat(42.0)) 25 assert.Equal(t, int64(42), i) 26 assert.Equal(t, int64(0), f) 27 28 i, f, _ = parseNum(uint64(math.MaxInt64)) 29 assert.Equal(t, int64(uint64(math.MaxInt64)), i) 30 assert.Equal(t, int64(0), f) 31 32 i, f, _ = parseNum("9223372036854775807.999999999") 33 assert.Equal(t, int64(9223372036854775807), i) 34 assert.Equal(t, int64(999999999), f) 35 36 i, f, _ = parseNum("999999999999999.123456789123") 37 assert.Equal(t, int64(999999999999999), i) 38 assert.Equal(t, int64(123456789), f) 39 40 i, f, _ = parseNum("123456.789") 41 assert.Equal(t, int64(123456), i) 42 assert.Equal(t, int64(789000000), f) 43 44 _, _, err := parseNum("bogus.9223372036854775807") 45 assert.Error(t, err) 46 47 _, _, err = parseNum("bogus") 48 assert.Error(t, err) 49 50 _, _, err = parseNum("1.2.3") 51 assert.Error(t, err) 52 53 _, _, err = parseNum(1.1) 54 assert.Error(t, err) 55 56 i, f, err = parseNum(nil) 57 assert.Zero(t, i) 58 assert.Zero(t, f) 59 assert.NoError(t, err) 60 }