github.com/dusk-network/dusk-crypto@v0.1.3/rangeproof/bitCommitment_test.go (about) 1 package rangeproof_test 2 3 import ( 4 "math/big" 5 "testing" 6 7 "github.com/dusk-network/dusk-crypto/rangeproof" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestBitCommitToValue(t *testing.T) { 12 13 expectedValues := []int64{200, 400, 5670, 1234, 4567, 890} 14 15 for _, expected := range expectedValues { 16 value := big.NewInt(expected) 17 Commitment := rangeproof.BitCommit(value) 18 19 val := big.NewInt(0) 20 21 for i := len(Commitment.AL) - 1; i >= 0; i-- { 22 var basePow, e = big.NewInt(2), big.NewInt(int64(i)) 23 basePow.Exp(basePow, e, nil) 24 25 base10val := big.NewInt(0) 26 base10val.Mul(basePow, Commitment.AL[i].BigInt()) 27 28 val.Add(val, base10val) 29 } 30 assert.Equal(t, expected, val.Int64()) 31 } 32 33 } 34 35 func TestEnsure(t *testing.T) { 36 expectedValues := []int64{200, 400, 5670, 1234, 4567, 890} 37 38 for _, expected := range expectedValues { 39 40 value := big.NewInt(expected) 41 Commitment := rangeproof.BitCommit(value) 42 err := Commitment.Debug(value) 43 44 assert.Equal(t, nil, err) 45 46 } 47 }