arnaucube
arnaucube/go-circom-prover-verifierPublic Self-hosted repository
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}