github.com/onflow/flow-go@v0.33.17/fvm/evm/types/balance_test.go (about) 1 package types_test 2 3 import ( 4 "math/big" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 9 "github.com/onflow/cadence" 10 11 "github.com/onflow/flow-go/fvm/evm/types" 12 ) 13 14 func TestBalance(t *testing.T) { 15 // test attoflow to flow 16 17 bal, err := types.NewBalanceFromAttoFlow(types.OneFlowInAttoFlow) 18 require.NoError(t, err) 19 20 conv := bal.ToAttoFlow() 21 require.Equal(t, types.OneFlowInAttoFlow, conv) 22 23 // encoding decoding 24 ret, err := types.DecodeBalance(bal.Encode()) 25 require.NoError(t, err) 26 require.Equal(t, bal, ret) 27 28 // 100.0002 Flow 29 u, err := cadence.NewUFix64("100.0002") 30 require.NoError(t, err) 31 require.Equal(t, "100.00020000", u.String()) 32 33 bb := types.Balance(u).ToAttoFlow() 34 require.Equal(t, "100000200000000000000", bb.String()) 35 36 // invalid conversion 37 _, err = types.NewBalanceFromAttoFlow(big.NewInt(1)) 38 require.Error(t, err) 39 40 }