Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
ultra_honk.test.hpp
Go to the documentation of this file.
1#pragma once
2
21
22#include <gtest/gtest.h>
23
24namespace bb {
25
27
28template <typename Flavor> class UltraHonkTests : public ::testing::Test {
29 public:
35
36 std::vector<uint32_t> add_variables(auto& circuit_builder, std::vector<bb::fr> variables)
37 {
38 std::vector<uint32_t> res;
39 for (auto& variable : variables) {
40 res.emplace_back(circuit_builder.add_variable(variable));
41 }
42 return res;
43 }
44
53
54 void prove_and_verify(typename Flavor::CircuitBuilder& circuit_builder, bool expected_result)
55 {
56 auto prover_instance = std::make_shared<ProverInstance>(circuit_builder);
57 prove_and_verify(prover_instance, expected_result);
58 };
59
61 {
62 auto verification_key = std::make_shared<VerificationKey>(prover_instance->get_precomputed());
63 auto vk_and_hash = std::make_shared<typename Flavor::VKAndHash>(verification_key);
64 Prover prover(prover_instance, verification_key);
65 auto proof = prover.construct_proof();
66 Verifier verifier(vk_and_hash);
67 bool result = verifier.verify_proof(proof).result;
68 EXPECT_EQ(result, expected_result);
69 };
70
71 protected:
73};
74
75} // namespace bb
Manages the data that is propagated on the public inputs of an application/function circuit.
The verification key is responsible for storing the commitments to the precomputed (non-witnessk) pol...
A ProverInstance is normally constructed from a finalized circuit and it contains all the information...
The data that is propagated on the public inputs of a rollup circuit.
std::vector< uint32_t > add_variables(auto &circuit_builder, std::vector< bb::fr > variables)
void prove_and_verify(const std::shared_ptr< ProverInstance > &prover_instance, bool expected_result)
typename Flavor::VerificationKey VerificationKey
std::conditional_t< HasIPAAccumulator< Flavor >, RollupIO, DefaultIO > IO
void set_default_pairing_points_and_ipa_claim_and_proof(UltraCircuitBuilder &builder)
void prove_and_verify(typename Flavor::CircuitBuilder &circuit_builder, bool expected_result)
static void SetUpTestSuite()
Output verify_proof(const Proof &proof)
Perform ultra verification.
static void add_default(Builder &builder)
Add default public inputs when they are not present.
static void add_default(Builder &builder)
Add default public inputs when they are not present.
AluTraceBuilder builder
Definition alu.test.cpp:124
bool expected_result
Base class templates for structures that contain data parameterized by the fundamental polynomials of...
std::filesystem::path bb_crs_path()
void init_file_crs_factory(const std::filesystem::path &path)
Entry point for Barretenberg command-line interface.
Definition api.hpp:5
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
An object storing two EC points that represent the inputs to a pairing check.