gopter test (#22)

Co-authored-by: Arya Tabaie <15056835+Tabaie@users.noreply.github.com>
This commit is contained in:
Arya Tabaie
2024-09-12 10:04:16 -05:00
committed by GitHub
parent 81affa35a6
commit 0f57a8def8

View File

@@ -3,6 +3,10 @@ package pi_interconnection_test
import (
"errors"
"fmt"
"github.com/consensys/zkevm-monorepo/prover/config"
"github.com/leanovate/gopter"
"github.com/leanovate/gopter/gen"
"github.com/leanovate/gopter/prop"
"testing"
"github.com/consensys/gnark-crypto/ecc"
@@ -14,9 +18,7 @@ import (
"github.com/consensys/zkevm-monorepo/prover/circuits/internal"
pi_interconnection "github.com/consensys/zkevm-monorepo/prover/circuits/pi-interconnection"
"github.com/consensys/zkevm-monorepo/prover/circuits/pi-interconnection/keccak"
"github.com/consensys/zkevm-monorepo/prover/config"
"github.com/consensys/zkevm-monorepo/prover/utils"
"github.com/consensys/zkevm-monorepo/prover/utils/test_utils"
"github.com/stretchr/testify/assert"
"golang.org/x/crypto/sha3"
)
@@ -103,22 +105,32 @@ func (c *testMerkleCircuit) Define(api frontend.API) error {
}
func TestMaxNbCircuitsSum(t *testing.T) {
cfg := config.PublicInput{
MaxNbDecompression: test_utils.RandIntN(10),
MaxNbExecution: test_utils.RandIntN(10),
MaxNbCircuits: 20,
MaxNbKeccakF: 200,
ExecutionMaxNbMsg: 2,
L2MsgMerkleDepth: 5,
L2MsgMaxNbMerkle: 2,
MockKeccakWizard: true,
}
parameters := gopter.DefaultTestParameters()
parameters.MinSuccessfulTests = 5
parameters.Rng.Seed(0x123456789abcdef0)
c, err := pi_interconnection.Compile(cfg)
assert.NoError(t, err)
properties := gopter.NewProperties(parameters)
cs, err := frontend.Compile(ecc.BLS12_377.ScalarField(), scs.NewBuilder, c.Circuit)
assert.NoError(t, err)
properties.Property("provides the correct number of public inputs", prop.ForAll(
func(maxNbDecompression, maxNbExecution int) bool {
cfg := config.PublicInput{
MaxNbDecompression: maxNbDecompression,
MaxNbExecution: maxNbExecution,
MaxNbCircuits: 20,
MaxNbKeccakF: 200,
ExecutionMaxNbMsg: 2,
L2MsgMerkleDepth: 5,
L2MsgMaxNbMerkle: 2,
MockKeccakWizard: true,
}
assert.Equal(t, cfg.MaxNbDecompression+cfg.MaxNbExecution, pi_interconnection.GetMaxNbCircuitsSum(cs))
c, err := pi_interconnection.Compile(cfg)
assert.NoError(t, err)
cs, err := frontend.Compile(ecc.BLS12_377.ScalarField(), scs.NewBuilder, c.Circuit)
assert.NoError(t, err)
return cfg.MaxNbDecompression+cfg.MaxNbExecution == pi_interconnection.GetMaxNbCircuitsSum(cs)
}, gen.IntRange(1, 10), gen.IntRange(1, 10),
))
properties.TestingRun(t)
}