26TEST(boomerang_rom_ram_table, graph_description_rom_table)
31 const size_t table_size = 10;
32 for (
size_t i = 0; i < table_size; ++i) {
35 for (
auto& elem : table_values) {
40 std::unordered_set<uint32_t> safety_variables;
44 for (
size_t i = 0; i < 10; ++i) {
48 result += table[
index];
54 EXPECT_EQ(connected_components.size(), 1);
56 for (
const auto& elem : variables_in_one_gate) {
57 EXPECT_EQ(variables_in_one_gate.contains(elem),
true);
68TEST(boomerang_rom_ram_table, graph_description_ram_table_read)
73 const size_t table_size = 10;
74 for (
size_t i = 0; i < table_size; ++i) {
78 for (
auto& elem : table_values) {
84 std::unordered_set<uint32_t> safety_variables;
86 for (
size_t i = 0; i < 10; ++i) {
96 EXPECT_EQ(connected_components.size(), 1);
98 for (
const auto& elem : variables_in_one_gate) {
99 EXPECT_EQ(safety_variables.contains(elem),
true);
116TEST(boomerang_rom_ram_table, graph_description_ram_table_write)
119 const size_t table_size = 10;
121 std::vector<fr> table_values(table_size);
125 for (
size_t i = 0; i < table_size; ++i) {
129 std::unordered_set<uint32_t> safety_variables;
133 const auto update = [&]() {
134 for (
size_t i = 0; i < table_size / 2; ++i) {
143 table.
write(2 * i, value1);
144 table.
write(2 * i + 1, value2);
148 const auto read = [&]() {
149 for (
size_t i = 0; i < table_size / 2; ++i) {
150 const size_t index = table_size - 2 - (i * 2);
153 index1.fix_witness();
155 result += table.
read(index1);
157 result += table.
read(index2);
171 EXPECT_EQ(connected_components.size(), 1);
173 for (
const auto& elem : variables_in_one_gate) {
174 EXPECT_EQ(safety_variables.contains(elem),
true);
uint32_t get_witness_index() const
Get the witness index of the current field element.
field_pt read(const field_pt &index) const
Read a field element from the RAM table at an index value.
void write(const field_pt &index, const field_pt &value)
Write a field element from the RAM table at an index value.
std::vector< ConnectedComponent > find_connected_components()
this methond finds all connected components in the graph described by adjacency lists and marks some ...
std::unordered_set< uint32_t > get_variables_in_one_gate()
this method returns a final set of variables that were in one gate
stdlib::field_t< Builder > field_ct
stdlib::witness_t< Builder > witness_ct
RNG & get_debug_randomness(bool reset, std::uint_fast64_t seed)
Entry point for Barretenberg command-line interface.
void read(uint8_t const *&it, Chonk::VerificationKey &vk)
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
TEST(BoomerangMegaCircuitBuilder, BasicCircuit)
UltraStaticAnalyzer StaticAnalyzer
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
static field random_element(numeric::RNG *engine=nullptr) noexcept