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