Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
graph_description_dynamic_array.test.cpp
Go to the documentation of this file.
7
8using namespace bb;
9using namespace cdg;
10namespace {
12}
13
14// Defining ultra-specific types for local testing.
20
30TEST(boomerang_stdlib_dynamic_array, graph_description_dynamic_array_method_resize_test)
31{
32
34 const size_t max_size = 10;
35
36 DynamicArray_ct array(&builder, max_size);
37
38 field_ct next_size = field_ct(witness_ct(&builder, (uint256_t)(max_size - 1)));
39 for (size_t i = 0; i < max_size; ++i) {
41 }
42
43 array.resize(next_size, 7);
45 auto connected_components = graph.find_connected_components();
46 auto variables_in_one_gate = graph.show_variables_in_one_gate(builder);
47 EXPECT_EQ(connected_components.size(), 1);
48 EXPECT_EQ(variables_in_one_gate.size(), max_size);
49}
50
62TEST(boomerang_stdlib_dynamic_array, graph_description_dynamic_array_consistency_methods)
63{
65 const size_t max_size = 10;
66
67 DynamicArray_ct array(&builder, max_size);
68
69 for (size_t i = 0; i < max_size; ++i) {
71 }
72
73 for (size_t i = 0; i < max_size; ++i) {
74 array.pop();
75 }
76
77 array.resize(max_size - 1, 7);
78
79 array.conditional_push(false, 100);
80 array.conditional_push(true, 100);
81 array.conditional_pop(false);
82 array.conditional_pop(true);
84 auto connected_components = graph.find_connected_components();
85 EXPECT_EQ(connected_components.size(), 1);
86 auto variables_in_one_gate = graph.show_variables_in_one_gate(builder);
87 EXPECT_EQ(variables_in_one_gate.size(), max_size);
88}
A dynamic array of field elements.
void conditional_pop(const bool_pt &predicate)
Conditionallhy pop a field element off of the dynamic array.
void resize(const field_pt &new_length, const field_pt default_value=0)
Resize array. Current method v. inefficient!
void push(const field_pt &index)
Push a field element onto the dynamic array.
void pop()
Pop a field element off of the dynamic array.
void conditional_push(const bool_pt &predicate, const field_pt &index)
Conditionally push a field element onto the dynamic array.
Implements boolean logic in-circuit.
Definition bool.hpp:59
static field_t from_witness(Builder *ctx, const bb::fr &input)
Definition field.hpp:424
std::unordered_set< uint32_t > show_variables_in_one_gate(bb::UltraCircuitBuilder &ultra_circuit_builder)
this method returns a final set of variables that were in one gate
Definition graph.cpp:1190
std::vector< std::vector< uint32_t > > find_connected_components()
this methond finds all connected components in the graph described by adjacency lists
Definition graph.cpp:794
AluTraceBuilder builder
Definition alu.test.cpp:123
numeric::RNG & engine
stdlib::field_t< Builder > field_ct
stdlib::witness_t< Builder > witness_ct
TEST(boomerang_stdlib_dynamic_array, graph_description_dynamic_array_method_resize_test)
this test checks graph description for dynamic array resize operation The result is one connected com...
RNG & get_debug_randomness(bool reset, std::uint_fast64_t seed)
Definition engine.cpp:190
Entry point for Barretenberg command-line interface.
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
Definition graph.cpp:11
StaticAnalyzer_< bb::fr > StaticAnalyzer
Definition graph.hpp:201