func TestFalseBulletproofsZKRP(t *testing.T) {
	var (
		zkrp Bp
	)
	startTime := time.Now()
	zkrp.Setup(0, 4294967296)  
	setupTime := time.Now()
	fmt.Println("Setup time:")
	fmt.Println(setupTime.Sub(startTime))
	x := new(big.Int).SetInt64(4294967296)
	proof, _ := zkrp.Prove(x)
	proofTime := time.Now()
	fmt.Println("Proof time:")
	fmt.Println(proofTime.Sub(setupTime))
	ok, _ := zkrp.Verify(proof)
	verifyTime := time.Now()
	fmt.Println("Verify time:")
	fmt.Println(verifyTime.Sub(proofTime))
	fmt.Println("Range Proofs invalid test result:")
	fmt.Println(ok)
	if ok != false {
		t.Errorf("Assert failure: expected true, actual: %t", ok)
	}
}
/*
Test the FALSE case of ZK Range Proof scheme using Bulletproofs.
package zkproofs
import (
	"crypto/rand"
	"fmt"
	"math/big"
	"testing"
	"time"
	"github.com/ing-bank/zkproofs/go-ethereum/crypto/bn256"
)
func TestVectorCopy(t *testing.T) {
	var (
		result []*big.Int
	)
	result, _ = VectorCopy(new(big.Int).SetInt64(1), 3)
	ok := (result[0].Cmp(new(big.Int).SetInt64(1)) == 0)
	ok = ok && (result[1].Cmp(GetBigInt("1")) == 0)
	ok = ok && (result[2].Cmp(GetBigInt("1")) == 0)
	if ok != true {
		t.Errorf("Assert failure: expected true, actual: %t", ok)
	}
}
func TestVectorConvertToBig(t *testing.T) {
	var (
		result []*big.Int
		a      []int64
	)
	a = make([]int64, 3)
	a[0] = 3
	a[1] = 4
	a[2] = 5
	result, _ = VectorConvertToBig(a, 3)
	ok := (result[0].Cmp(new(big.Int).SetInt64(3)) == 0)
	ok = ok && (result[1].Cmp(GetBigInt("4")) == 0)
	ok = ok && (result[2].Cmp(GetBigInt("5")) == 0)
	if ok != true {
		t.Errorf("Assert failure: expected true, actual: %t", ok)
	}
}
func TestScalarProduct(t *testing.T) {
	var (
		a, b []*big.Int
	)
	a = make([]*big.Int, 3)
	b = make([]*big.Int, 3)
	a[0] = new(big.Int).SetInt64(7)
	a[1] = new(big.Int).SetInt64(7)
	a[2] = new(big.Int).SetInt64(7)
	b[0] = new(big.Int).SetInt64(3)
	b[1] = new(big.Int).SetInt64(3)
	b[2] = new(big.Int).SetInt64(3)
	result, _ := ScalarProduct(a, b)
	ok := (result.Cmp(new(big.Int).SetInt64(63)) == 0)
	if ok != true {
		t.Errorf("Assert failure: expected true, actual: %t", ok)
	}
}
func TestVectorAdd(t *testing.T) {
	var (
		a, b []*big.Int
	)
	a = make([]*big.Int, 3)
	b = make([]*big.Int, 3)
	a[0] = new(big.Int).SetInt64(7)
	a[1] = new(big.Int).SetInt64(8)
	a[2] = new(big.Int).SetInt64(9)
	b[0] = new(big.Int).SetInt64(3)
	b[1] = new(big.Int).SetInt64(30)
	b[2] = new(big.Int).SetInt64(40)
	result, _ := VectorAdd(a, b)
	ok := (result[0].Cmp(new(big.Int).SetInt64(10)) == 0)
	ok = ok && (result[1].Cmp(GetBigInt("38")) == 0)
	ok = ok && (result[2].Cmp(GetBigInt("49")) == 0)
	if ok != true {
		t.Errorf("Assert failure: expected true, actual: %t", ok)
	}
}
func TestVectorSub(t *testing.T) {
	var (
		a, b []*big.Int
	)
	a = make([]*big.Int, 3)
	b = make([]*big.Int, 3)
	a[0] = new(big.Int).SetInt64(7)
	a[1] = new(big.Int).SetInt64(8)
	a[2] = new(big.Int).SetInt64(9)
	b[0] = new(big.Int).SetInt64(3)
	b[1] = new(big.Int).SetInt64(30)
	b[2] = new(big.Int).SetInt64(40)
	result, _ := VectorSub(a, b)
	ok := (result[0].Cmp(new(big.Int).SetInt64(4)) == 0)
	ok = ok && (result[1].Cmp(GetBigInt("115792089237316195423570985008687907852837564279074904382605163141518161494315")) == 0)
	ok = ok && (result[2].Cmp(GetBigInt("115792089237316195423570985008687907852837564279074904382605163141518161494306")) == 0)
	if ok != true {
		t.Errorf("Assert failure: expected true, actual: %t", ok)
	}
}
func TestVectorMul(t *testing.T) {
	var (
		a, b []*big.Int
	)
	a = make([]*big.Int, 3)
	b = make([]*big.Int, 3)
	a[0] = new(big.Int).SetInt64(7)
	a[1] = new(big.Int).SetInt64(8)
	a[2] = new(big.Int).SetInt64(9)
	b[0] = new(big.Int).SetInt64(3)
	b[1] = new(big.Int).SetInt64(30)
	b[2] = new(big.Int).SetInt64(40)
	result, _ := VectorMul(a, b)
	ok := (result[0].Cmp(new(big.Int).SetInt64(21)) == 0)
	ok = ok && (result[1].Cmp(new(big.Int).SetInt64(240)) == 0)
	ok = ok && (result[2].Cmp(new(big.Int).SetInt64(360)) == 0)
	if ok != true {
		t.Errorf("Assert failure: expected true, actual: %t", ok)
	}
}
func TestPowerOf(t *testing.T) {
	result, _ := PowerOf(new(big.Int).SetInt64(3), 3)
	ok := (result[0].Cmp(new(big.Int).SetInt64(1)) == 0)
	ok = ok && (result[1].Cmp(new(big.Int).SetInt64(3)) == 0)
	ok = ok && (result[2].Cmp(new(big.Int).SetInt64(9)) == 0)
	if ok != true {
		t.Errorf("Assert failure: expected true, actual: %t", ok)
	}
}
func TestInnerProduct(t *testing.T) {
	var (
		zkrp Bp
		zkip bip
		a    []*big.Int
		b    []*big.Int
	)
	zkrp.Setup(0, 16)
	a = make([]*big.Int, zkrp.N)
	a[0] = new(big.Int).SetInt64(2)
	a[1] = new(big.Int).SetInt64(-1)
	a[2] = new(big.Int).SetInt64(10)
	a[3] = new(big.Int).SetInt64(6)
	b = make([]*big.Int, zkrp.N)
	b[0] = new(big.Int).SetInt64(1)
	b[1] = new(big.Int).SetInt64(2)
	b[2] = new(big.Int).SetInt64(10)
	b[3] = new(big.Int).SetInt64(7)
	c := new(big.Int).SetInt64(142)
	commit, _ := CommitInnerProduct(zkrp.Gg, zkrp.Hh, a, b)
	zkip.Setup(zkrp.H, zkrp.Gg, zkrp.Hh, c)
	proof, _ := zkip.Prove(a, b, commit)
	ok, _ := zkip.Verify(proof)
	if ok != true {
		t.Errorf("Assert failure: expected true, actual: %t", ok)
	}
}