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  }