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) {
90 result += table.
read(index);
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);
124 for (
size_t i = 0; i < table_size; ++i) {
127 std::unordered_set<uint32_t> safety_variables;
131 const auto update = [&]() {
132 for (
size_t i = 0; i < table_size / 2; ++i) {
141 table.
write(2 * i, value1);
142 table.
write(2 * i + 1, value2);
146 const auto read = [&]() {
147 for (
size_t i = 0; i < table_size / 2; ++i) {
148 const size_t index = table_size - 2 - (i * 2);
151 index1.fix_witness();
153 result += table.
read(index1);
155 result += table.
read(index2);
169 EXPECT_EQ(connected_components.size(), 1);
171 for (
const auto& elem : variables_in_one_gate) {
172 EXPECT_EQ(safety_variables.contains(elem),
true);