arnaucube
arnaucube/go-snarkPublic Self-hosted repository
go-snark/bn128/g1_test.go
bn128/g1_test.goRaw
 1package bn128
 2
 3import (
 4	"math/big"
 5	"testing"
 6
 7	"github.com/arnaucube/cryptofun/utils"
 8	"github.com/stretchr/testify/assert"
 9)
10
11func TestG1(t *testing.T) {
12	bn128, err := NewBn128()
13	assert.Nil(t, err)
14
15	r1 := big.NewInt(int64(33))
16	r2 := big.NewInt(int64(44))
17
18	gr1 := bn128.G1.MulScalar(bn128.G1.G, bn128.Fq1.Copy(r1))
19	gr2 := bn128.G1.MulScalar(bn128.G1.G, bn128.Fq1.Copy(r2))
20
21	grsum1 := bn128.G1.Add(gr1, gr2)               // g*33 + g*44
22	r1r2 := bn128.Fq1.Add(r1, r2)                  // 33 + 44
23	grsum2 := bn128.G1.MulScalar(bn128.G1.G, r1r2) // g * (33+44)
24
25	assert.True(t, bn128.G1.Equal(grsum1, grsum2))
26	a := bn128.G1.Affine(grsum1)
27	b := bn128.G1.Affine(grsum2)
28	assert.Equal(t, a, b)
29	assert.Equal(t, "0x2f978c0ab89ebaa576866706b14787f360c4d6c3869efe5a72f7c3651a72ff00", utils.BytesToHex(a[0].Bytes()))
30	assert.Equal(t, "0x12e4ba7f0edca8b4fa668fe153aebd908d322dc26ad964d4cd314795844b62b2", utils.BytesToHex(a[1].Bytes()))
31}