19#include <gtest/gtest.h>
30using FlavorTypes = testing::Types<MegaFlavor, UltraFlavor, UltraZKFlavor, UltraRollupFlavor>;
39 size_t CURRENT_MERGE_PROOF_SIZE = 42;
40 EXPECT_EQ(CURRENT_MERGE_PROOF_SIZE, MERGE_PROOF_SIZE) <<
"The length of the Merge proof changed.";
43 EXPECT_EQ(merge_proof.size(), MERGE_PROOF_SIZE);
51 size_t CURRENT_ECCVM_PROOF_SIZE = 608;
53 <<
"The length of the Pre-IPA proof changed.";
64 size_t CURRENT_IPA_PROOF_SIZE = 64;
65 EXPECT_EQ(IPA_PROOF_LENGTH, CURRENT_IPA_PROOF_SIZE) <<
"The length of the IPA proof changed.";
68 EXPECT_EQ(ipa_proof.size(), IPA_PROOF_LENGTH);
76 size_t CURRENT_TRANSLATOR_PROOF_SIZE = 786;
78 <<
"The length of the Translator proof changed.";
93 size_t CURRENT_OINK_PROOF_SIZE_WITHOUT_PUB_INPUTS = 96;
94 EXPECT_EQ(Flavor::OINK_PROOF_LENGTH_WITHOUT_PUB_INPUTS, CURRENT_OINK_PROOF_SIZE_WITHOUT_PUB_INPUTS)
95 <<
"The length of the Mega Oink proof changed.";
100 HonkProof honk_proof = create_mock_oink_proof<Flavor, stdlib::recursion::honk::AppIO>();
101 EXPECT_EQ(honk_proof.size(), Flavor::OINK_PROOF_LENGTH_WITHOUT_PUB_INPUTS + NUM_PUBLIC_INPUTS);
107 HonkProof honk_proof = create_mock_oink_proof<Flavor, stdlib::recursion::honk::KernelIO>();
108 EXPECT_EQ(honk_proof.size(), Flavor::OINK_PROOF_LENGTH_WITHOUT_PUB_INPUTS + NUM_PUBLIC_INPUTS);
114 HonkProof honk_proof = create_mock_oink_proof<Flavor, stdlib::recursion::honk::HidingKernelIO<Builder>>();
115 EXPECT_EQ(honk_proof.size(), Flavor::OINK_PROOF_LENGTH_WITHOUT_PUB_INPUTS + NUM_PUBLIC_INPUTS);
133 size_t CURRENT_OINK_PROOF_SIZE_WITHOUT_PUB_INPUTS =
Flavor::HasZK ? 36 : 32;
134 EXPECT_EQ(Flavor::OINK_PROOF_LENGTH_WITHOUT_PUB_INPUTS, CURRENT_OINK_PROOF_SIZE_WITHOUT_PUB_INPUTS)
135 <<
"The length of the Ultra Oink proof changed.";
137 const size_t NUM_PUBLIC_INPUTS = IO::PUBLIC_INPUTS_SIZE;
138 HonkProof honk_proof = create_mock_oink_proof<Flavor, IO>();
139 EXPECT_EQ(honk_proof.size(), Flavor::OINK_PROOF_LENGTH_WITHOUT_PUB_INPUTS + NUM_PUBLIC_INPUTS);
154 size_t CURRENT_DECIDER_ULTRAZK_PROOF_SIZE = IsMegaFlavor<Flavor> ? 337 : 409;
155 EXPECT_EQ(Flavor::DECIDER_PROOF_LENGTH(), CURRENT_DECIDER_ULTRAZK_PROOF_SIZE)
156 <<
"The length of the Decider UltraZK proof changed.";
158 HonkProof honk_proof = create_mock_decider_proof<Flavor>();
159 EXPECT_EQ(honk_proof.size(), Flavor::DECIDER_PROOF_LENGTH());
176 size_t CURRENT_MEGA_PROOF_SIZE_WITHOUT_PUB_INPUTS = 433;
178 <<
"The length of the Mega Honk proof changed.";
183 HonkProof honk_proof = create_mock_honk_proof<Flavor, stdlib::recursion::honk::AppIO>();
190 HonkProof honk_proof = create_mock_honk_proof<Flavor, stdlib::recursion::honk::KernelIO>();
197 HonkProof honk_proof = create_mock_honk_proof<Flavor, stdlib::recursion::honk::HidingKernelIO<Builder>>();
217 size_t CURRENT_ULTRA_HONK_PROOF_SIZE_WITHOUT_PUB_INPUTS = 0;
219 CURRENT_ULTRA_HONK_PROOF_SIZE_WITHOUT_PUB_INPUTS = 441;
221 CURRENT_ULTRA_HONK_PROOF_SIZE_WITHOUT_PUB_INPUTS = 505;
223 CURRENT_ULTRA_HONK_PROOF_SIZE_WITHOUT_PUB_INPUTS = 492;
225 const size_t NUM_PUBLIC_INPUTS = IO::PUBLIC_INPUTS_SIZE;
226 HonkProof honk_proof = create_mock_honk_proof<Flavor, IO>();
229 <<
"The length of the Ultra Honk proof changed.";
245 size_t CURRENT_CHONK_PROOF_SIZE_WITHOUT_PUB_INPUTS = 1907;
246 HonkProof chonk_proof = create_mock_chonk_proof<Builder>();
248 EXPECT_EQ(chonk_proof.size(),
249 CURRENT_CHONK_PROOF_SIZE_WITHOUT_PUB_INPUTS +
251 <<
"The length of the Chonk proof changed.";
259 size_t CURRENT_MULTILINEAR_BATCHING_PROOF_SIZE_WITHOUT_PUB_INPUTS = 121;
262 EXPECT_EQ(batching_proof.size(), CURRENT_MULTILINEAR_BATCHING_PROOF_SIZE_WITHOUT_PUB_INPUTS)
263 <<
"The length of the MultiLinearBatching proof changed.";
static constexpr bool HasZK
ECCVMCircuitBuilder CircuitBuilder
static constexpr size_t PROOF_LENGTH_WITHOUT_PUB_INPUTS
MergeProver::MergeProof MergeProof
static constexpr size_t PROOF_LENGTH_WITHOUT_PUB_INPUTS()
static constexpr size_t PROOF_LENGTH_WITHOUT_PUB_INPUTS
Manages the data that is propagated on the public inputs of an application/function circuit.
static constexpr size_t PUBLIC_INPUTS_SIZE
Manages the data that is propagated on the public inputs of a hiding kernel circuit.
static constexpr size_t PUBLIC_INPUTS_SIZE
The data that is propagated on the public inputs of a rollup circuit.
std::filesystem::path bb_crs_path()
void init_file_crs_factory(const std::filesystem::path &path)
TYPED_TEST_SUITE(BoomerangRecursiveVerifierTest, Flavors)
Entry point for Barretenberg command-line interface.
std::vector< fr > HonkProof
TYPED_TEST(ShpleminiTest, CorrectnessOfMultivariateClaimBatching)
TEST(BoomerangMegaCircuitBuilder, BasicCircuit)
MegaCircuitBuilder_< field< Bn254FrParams > > MegaCircuitBuilder
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
static constexpr size_t PROOF_LENGTH
The size of a Chonk proof with backend-added public inputs: HidingKernelIO.