go-circom-prover-verifier/verifier/verifier_test.go
verifier/verifier_test.goRaw
1package verifier
2
3import (
4 "io/ioutil"
5 "testing"
6
7 "github.com/iden3/go-circom-prover-verifier/parsers"
8
9 "github.com/stretchr/testify/assert"
10 "github.com/stretchr/testify/require"
11)
12
13func TestVerify1(t *testing.T) {
14 proofJson, err := ioutil.ReadFile("../testdata/big/proof.json")
15 require.Nil(t, err)
16 vkJson, err := ioutil.ReadFile("../testdata/big/verification_key.json")
17 require.Nil(t, err)
18 publicJson, err := ioutil.ReadFile("../testdata/big/public.json")
19 require.Nil(t, err)
20
21 public, err := parsers.ParsePublicSignals(publicJson)
22 require.Nil(t, err)
23 proof, err := parsers.ParseProof(proofJson)
24 require.Nil(t, err)
25 vk, err := parsers.ParseVk(vkJson)
26 require.Nil(t, err)
27
28 v := Verify(vk, proof, public)
29 assert.True(t, v)
30
31 // Verify again to check that `Verify` hasn't mutated the inputs
32 v = Verify(vk, proof, public)
33 assert.True(t, v)
34}
35
36func BenchmarkVerify(b *testing.B) {
37 proofJson, err := ioutil.ReadFile("../testdata/big/proof.json")
38 require.Nil(b, err)
39 vkJson, err := ioutil.ReadFile("../testdata/big/verification_key.json")
40 require.Nil(b, err)
41 publicJson, err := ioutil.ReadFile("../testdata/big/public.json")
42 require.Nil(b, err)
43
44 public, err := parsers.ParsePublicSignals(publicJson)
45 require.Nil(b, err)
46 proof, err := parsers.ParseProof(proofJson)
47 require.Nil(b, err)
48 vk, err := parsers.ParseVk(vkJson)
49 require.Nil(b, err)
50
51 for i := 0; i < b.N; i++ {
52 Verify(vk, proof, public)
53 }
54}