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)
	}
}
/*
Scalar Product returns the inner product between 2 vectors.
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)
	}
}