lnd.xprv/lnwire/msat_test.go

78 lines
1.3 KiB
Go

package lnwire
import (
"testing"
"github.com/btcsuite/btcutil"
)
func TestMilliSatoshiConversion(t *testing.T) {
t.Parallel()
testCases := []struct {
mSatAmount MilliSatoshi
satAmount btcutil.Amount
btcAmount float64
}{
{
mSatAmount: 0,
satAmount: 0,
btcAmount: 0,
},
{
mSatAmount: 10,
satAmount: 0,
btcAmount: 0,
},
{
mSatAmount: 999,
satAmount: 0,
btcAmount: 0,
},
{
mSatAmount: 1000,
satAmount: 1,
btcAmount: 1e-8,
},
{
mSatAmount: 10000,
satAmount: 10,
btcAmount: 0.00000010,
},
{
mSatAmount: 100000000000,
satAmount: 100000000,
btcAmount: 1,
},
{
mSatAmount: 2500000000000,
satAmount: 2500000000,
btcAmount: 25,
},
{
mSatAmount: 5000000000000,
satAmount: 5000000000,
btcAmount: 50,
},
{
mSatAmount: 21 * 1e6 * 1e8 * 1e3,
satAmount: 21 * 1e6 * 1e8,
btcAmount: 21 * 1e6,
},
}
for i, test := range testCases {
if test.mSatAmount.ToSatoshis() != test.satAmount {
t.Fatalf("test #%v: wrong sat amount, expected %v "+
"got %v", i, int64(test.satAmount),
int64(test.mSatAmount.ToSatoshis()))
}
if test.mSatAmount.ToBTC() != test.btcAmount {
t.Fatalf("test #%v: wrong btc amount, expected %v "+
"got %v", i, test.btcAmount,
test.mSatAmount.ToBTC())
}
}
}