Skip to content

Commit

Permalink
test case
Browse files Browse the repository at this point in the history
  • Loading branch information
ivokub committed Nov 21, 2023
1 parent 38a55ea commit a6f0e30
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions std/algebra/emulated/sw_bw6761/pairing_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -322,3 +322,36 @@ func BenchmarkPairing(b *testing.B) {
}
})
}

type MillerLoopNewCircuit struct {
InG1 G1Affine
InG2 G2Affine
Res GTEl
}

func (c *MillerLoopNewCircuit) Define(api frontend.API) error {
pairing, err := NewPairing(api)
if err != nil {
return fmt.Errorf("new pairing: %w", err)
}
res, err := pairing.MillerLoopNew([]*G1Affine{&c.InG1}, []*G2Affine{&c.InG2})
if err != nil {
return fmt.Errorf("pair: %w", err)
}
pairing.AssertIsEqual(res, &c.Res)
return nil
}

func TestPrecomputation(t *testing.T) {
assert := test.NewAssert(t)
p, q := randomG1G2Affines()
res, err := bw6761.Pair([]bw6761.G1Affine{p}, []bw6761.G2Affine{q})
assert.NoError(err)
witness := MillerLoopNewCircuit{
InG1: NewG1Affine(p),
InG2: NewG2Affine(q),
Res: NewGTEl(res),
}
err = test.IsSolved(&MillerLoopNewCircuit{}, &witness, ecc.BN254.ScalarField())
assert.NoError(err)
}

0 comments on commit a6f0e30

Please sign in to comment.