36 std::vector<fr> inputs_native;
38 for (
size_t i = 0; i < num_inputs; ++i) {
40 inputs_native.emplace_back(element);
47 EXPECT_EQ(result.get_value(), expected);
50 EXPECT_EQ(proof_result,
true);
69 for (
size_t i = 0; i < num_inputs - 1; ++i) {
75 info(
"num gates = ",
builder.get_estimated_num_finalized_gates());
78 EXPECT_EQ(result,
true);
85 std::vector<fr> inputs;
86 inputs.reserve(num_inputs);
89 for (
size_t i = 0; i < num_inputs; ++i) {
90 inputs.emplace_back(0);
97 EXPECT_EQ(result.get_value(), expected);
104 std::vector<fr> inputs;
107 for (
size_t i = 0; i < 8; ++i) {
118 ".*Sponge inputs should not be stdlib constants.*");
122using CircuitTypes = testing::Types<bb::MegaCircuitBuilder, bb::UltraCircuitBuilder>;
128 TestFixture::test_hash_zeros(8);
133 TestFixture::test_hash(10);
138 TestFixture::test_hash(1000);
143 TestFixture::test_hash_repeated_pairs(256);
148 TestFixture::test_hash_constants();
#define EXPECT_THROW_OR_ABORT(statement, matcher)
static void test_hash_constants()
static void test_hash_zeros(size_t num_inputs)
static void test_hash_repeated_pairs(size_t num_inputs)
Call poseidon2 on two inputs repeatedly.
typename _curve::ScalarField fr_ct
typename _curve::public_witness_ct public_witness_ct
typename _curve::witness_ct witness_ct
typename stdlib::poseidon2< Builder > poseidon2
static void test_hash(size_t num_inputs)
Call poseidon2 on a vector of inputs.
typename _curve::byte_array_ct byte_array_ct
static bool check(const Builder &circuit)
Check the witness satisifies the circuit.
static FF hash(const std::vector< FF > &input)
Hashes a vector of field elements.
stdlib class that evaluates in-circuit poseidon2 hashes, consistent with behavior in crypto::poseidon...
ECCVMCircuitBuilder Builder
stdlib::field_t< Builder > field_ct
RNG & get_debug_randomness(bool reset, std::uint_fast64_t seed)
Entry point for Barretenberg command-line interface.
TYPED_TEST_SUITE(ShpleminiTest, TestSettings)
TYPED_TEST(ShpleminiTest, CorrectnessOfMultivariateClaimBatching)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
testing::Types< bb::UltraCircuitBuilder > CircuitTypes
static field random_element(numeric::RNG *engine=nullptr) noexcept
field_t< CircuitBuilder > ScalarField
byte_array< CircuitBuilder > byte_array_ct
public_witness_t< CircuitBuilder > public_witness_ct
witness_t< CircuitBuilder > witness_ct