3#include <gtest/gtest.h>
15TEST(crypto_merkle_tree_hash, hash_native_vs_circuit)
17 fr x =
uint256_t(0x5ec473eb273a8011, 0x50160109385471ca, 0x2f3095267e02607d, 0x02586f4a39e69b86);
26TEST(crypto_merkle_tree_hash, compute_tree_native)
28 constexpr size_t depth = 2;
31 std::vector<fr> leaves;
32 for (
size_t i = 0; i < (size_t(1) << depth); i++) {
34 leaves.push_back(input);
41 for (
size_t i = 0; i < tree_vector.size() - 1; i++) {
42 EXPECT_EQ(tree_vector[i], mem_tree.
hashes_[i]);
44 EXPECT_EQ(tree_vector.back(), mem_tree.
root());
fr update_element(size_t index, fr const &value)
std::vector< bb::fr > hashes_
static Fq hash(const std::vector< Fq > &inputs, GeneratorContext context={})
Given a vector of fields, generate a pedersen hash using generators from context.
bb::fr get_value() const
Given a := *this, compute its value given by a.v * a.mul + a.add.
UltraCircuitBuilder Builder
bb::stdlib::witness_t< Builder > witness_ct
std::vector< bb::fr > compute_tree_native(std::vector< bb::fr > const &input)
bb::fr hash_pair_native(bb::fr const &lhs, bb::fr const &rhs)
Entry point for Barretenberg command-line interface.
TEST(MegaCircuitBuilder, CopyConstructor)
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
static field random_element(numeric::RNG *engine=nullptr) noexcept