21#include <gtest/gtest.h>
32using FlavorTypes = testing::Types<MegaFlavor, UltraFlavor, UltraZKFlavor, UltraRollupFlavor>;
41 size_t CURRENT_MERGE_PROOF_SIZE = 42;
42 EXPECT_EQ(CURRENT_MERGE_PROOF_SIZE, MERGE_PROOF_SIZE) <<
"The length of the Merge proof changed.";
45 EXPECT_EQ(merge_proof.size(), MERGE_PROOF_SIZE);
53 size_t CURRENT_ECCVM_PROOF_SIZE = 608;
55 <<
"The length of the Pre-IPA proof changed.";
66 size_t CURRENT_IPA_PROOF_SIZE = 64;
67 EXPECT_EQ(IPA_PROOF_LENGTH, CURRENT_IPA_PROOF_SIZE) <<
"The length of the IPA proof changed.";
70 EXPECT_EQ(ipa_proof.size(), IPA_PROOF_LENGTH);
78 size_t CURRENT_TRANSLATOR_PROOF_SIZE = 786;
80 <<
"The length of the Translator proof changed.";
95 size_t CURRENT_OINK_PROOF_SIZE_WITHOUT_PUB_INPUTS = 96;
96 EXPECT_EQ(Flavor::OINK_PROOF_LENGTH_WITHOUT_PUB_INPUTS, CURRENT_OINK_PROOF_SIZE_WITHOUT_PUB_INPUTS)
97 <<
"The length of the Mega Oink proof changed.";
102 HonkProof honk_proof = create_mock_oink_proof<Flavor, stdlib::recursion::honk::AppIO>();
103 EXPECT_EQ(honk_proof.size(), Flavor::OINK_PROOF_LENGTH_WITHOUT_PUB_INPUTS + NUM_PUBLIC_INPUTS);
109 HonkProof honk_proof = create_mock_oink_proof<Flavor, stdlib::recursion::honk::KernelIO>();
110 EXPECT_EQ(honk_proof.size(), Flavor::OINK_PROOF_LENGTH_WITHOUT_PUB_INPUTS + NUM_PUBLIC_INPUTS);
116 HonkProof honk_proof = create_mock_oink_proof<Flavor, stdlib::recursion::honk::HidingKernelIO<Builder>>();
117 EXPECT_EQ(honk_proof.size(), Flavor::OINK_PROOF_LENGTH_WITHOUT_PUB_INPUTS + NUM_PUBLIC_INPUTS);
135 size_t CURRENT_OINK_PROOF_SIZE_WITHOUT_PUB_INPUTS =
Flavor::HasZK ? 36 : 32;
136 EXPECT_EQ(Flavor::OINK_PROOF_LENGTH_WITHOUT_PUB_INPUTS, CURRENT_OINK_PROOF_SIZE_WITHOUT_PUB_INPUTS)
137 <<
"The length of the Ultra Oink proof changed.";
139 const size_t NUM_PUBLIC_INPUTS = IO::PUBLIC_INPUTS_SIZE;
140 HonkProof honk_proof = create_mock_oink_proof<Flavor, IO>();
141 EXPECT_EQ(honk_proof.size(), Flavor::OINK_PROOF_LENGTH_WITHOUT_PUB_INPUTS + NUM_PUBLIC_INPUTS);
156 size_t CURRENT_DECIDER_ULTRAZK_PROOF_SIZE = IsMegaFlavor<Flavor> ? 337 : 409;
157 EXPECT_EQ(Flavor::DECIDER_PROOF_LENGTH(), CURRENT_DECIDER_ULTRAZK_PROOF_SIZE)
158 <<
"The length of the Decider UltraZK proof changed.";
160 HonkProof honk_proof = create_mock_decider_proof<Flavor>();
161 EXPECT_EQ(honk_proof.size(), Flavor::DECIDER_PROOF_LENGTH());
178 size_t CURRENT_MEGA_PROOF_SIZE_WITHOUT_PUB_INPUTS = 433;
180 <<
"The length of the Mega Honk proof changed.";
185 HonkProof honk_proof = create_mock_honk_proof<Flavor, stdlib::recursion::honk::AppIO>();
192 HonkProof honk_proof = create_mock_honk_proof<Flavor, stdlib::recursion::honk::KernelIO>();
199 HonkProof honk_proof = create_mock_honk_proof<Flavor, stdlib::recursion::honk::HidingKernelIO<Builder>>();
219 size_t CURRENT_ULTRA_HONK_PROOF_SIZE_WITHOUT_PUB_INPUTS = 0;
221 CURRENT_ULTRA_HONK_PROOF_SIZE_WITHOUT_PUB_INPUTS = 441;
223 CURRENT_ULTRA_HONK_PROOF_SIZE_WITHOUT_PUB_INPUTS = 505;
225 CURRENT_ULTRA_HONK_PROOF_SIZE_WITHOUT_PUB_INPUTS = 492;
227 const size_t NUM_PUBLIC_INPUTS = IO::PUBLIC_INPUTS_SIZE;
228 HonkProof honk_proof = create_mock_honk_proof<Flavor, IO>();
231 <<
"The length of the Ultra Honk proof changed.";
247 size_t CURRENT_CHONK_PROOF_SIZE_WITHOUT_PUB_INPUTS = 1907;
248 HonkProof chonk_proof = create_mock_chonk_proof<Builder>();
250 EXPECT_EQ(chonk_proof.size(),
251 CURRENT_CHONK_PROOF_SIZE_WITHOUT_PUB_INPUTS +
253 <<
"The length of the Chonk proof changed.";
261 size_t CURRENT_MULTILINEAR_BATCHING_PROOF_SIZE_WITHOUT_PUB_INPUTS = 121;
264 EXPECT_EQ(batching_proof.size(), CURRENT_MULTILINEAR_BATCHING_PROOF_SIZE_WITHOUT_PUB_INPUTS)
265 <<
"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(size_t virtual_log_n=MegaZKFlavor::VIRTUAL_LOG_N)
The size of a Chonk proof with backend-added public inputs: HidingKernelIO.