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