3#include <gtest/gtest.h>
13constexpr uint64_t MAX_U32 = (1ULL << 32) - 1;
17TEST(HashUtilsTests, Constants)
71TEST(HashUtilsTests, MixedConstantWitness)
91TEST(HashUtilsTests, MultiBitOverflow)
97 uint64_t large_val = (1ULL << 33) - 1;
103 uint64_t expected =
static_cast<uint32_t
>((2 * large_val) & MAX_U32);
109TEST(HashUtilsTests, ChainedOperations)
123 uint64_t expected = (4ULL * MAX_U32) & MAX_U32;
129TEST(HashUtilsTests, InsufficientOverflowBitsFails)
135 uint64_t large_val = (1ULL << 33) - 1;
static bool check(const Builder &circuit)
Check the witness satisifies the circuit.
bb::fr get_value() const
Given a := *this, compute its value given by a.v * a.mul + a.add.
field_t< Builder > field_ct
witness_t< Builder > witness_ct
field_t< Builder > add_normalize_unsafe(const field_t< Builder > &a, const field_t< Builder > &b, size_t overflow_bits)
Compute (a + b) mod 2^32 with circuit constraints.
Entry point for Barretenberg command-line interface.
field< Bn254FrParams > fr
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
TEST(BoomerangMegaCircuitBuilder, BasicCircuit)