Compare strings instead of floats

This commit is contained in:
Jakub Matys 2018-09-24 13:30:09 +02:00
parent a69f79f955
commit e08e923ee8

View File

@ -12,6 +12,7 @@ import (
"path/filepath" "path/filepath"
"reflect" "reflect"
"sort" "sort"
"strings"
"testing" "testing"
) )
@ -328,19 +329,16 @@ func verifyAddresses(t *testing.T, d *db.RocksDB, h *TestHandler) {
t.Errorf("Tx %s: outputs mismatch: got %q, want %q", tx.Txid, taInfo.outputs, txInfo.outputs) t.Errorf("Tx %s: outputs mismatch: got %q, want %q", tx.Txid, taInfo.outputs, txInfo.outputs)
} }
taValIn := satToFloat(parser, &taInfo.valInSat) if taInfo.valOutSat.Cmp(&txInfo.valOutSat) != 0 {
taValOut := satToFloat(parser, &taInfo.valOutSat)
txValOut := satToFloat(parser, &txInfo.valOutSat)
if taValOut.Cmp(txValOut) != 0 {
t.Errorf("Tx %s: total output amount mismatch: got %s, want %s", t.Errorf("Tx %s: total output amount mismatch: got %s, want %s",
tx.Txid, taValOut.String(), txValOut.String()) tx.Txid, taInfo.valOutSat.String(), txInfo.valOutSat.String())
} }
treshold := big.NewFloat(0.0001) treshold := "0.0001"
if new(big.Float).Sub(taValIn, taValOut).Cmp(treshold) > 0 { fee := new(big.Int).Sub(&taInfo.valInSat, &taInfo.valOutSat)
if strings.Compare(parser.AmountToDecimalString(fee), treshold) > 0 {
t.Errorf("Tx %s: suspicious amounts: input ∑ [%s] - output ∑ [%s] > %s", t.Errorf("Tx %s: suspicious amounts: input ∑ [%s] - output ∑ [%s] > %s",
tx.Txid, taValIn.String(), taValOut.String(), treshold) tx.Txid, taInfo.valInSat.String(), taInfo.valOutSat.String(), treshold)
} }
} }
} }