|
|
// code originally taken from https://github.com/arnaucube/go-snark (https://github.com/arnaucube/go-snark/blob/master/fields/fq.go), pasted here to ensure compatibility among future changes
package field
import ( "math/big" "testing"
"github.com/stretchr/testify/assert" )
func iToBig(a int) *big.Int { return big.NewInt(int64(a)) }
func TestFq1(t *testing.T) { fq1 := NewFq(iToBig(7))
res := fq1.Add(iToBig(4), iToBig(4)) assert.Equal(t, iToBig(1), fq1.Affine(res))
res = fq1.Double(iToBig(5)) assert.Equal(t, iToBig(3), fq1.Affine(res))
res = fq1.Sub(iToBig(5), iToBig(7)) assert.Equal(t, iToBig(5), fq1.Affine(res))
res = fq1.Neg(iToBig(5)) assert.Equal(t, iToBig(2), fq1.Affine(res))
res = fq1.Mul(iToBig(5), iToBig(11)) assert.Equal(t, iToBig(6), fq1.Affine(res))
res = fq1.Inverse(iToBig(4)) assert.Equal(t, iToBig(2), res)
res = fq1.Square(iToBig(5)) assert.Equal(t, iToBig(4), res) }
|