Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
graph_description_keccak.test.cpp
Go to the documentation of this file.
2
7
8#include <array>
9#include <unordered_set>
10
11using namespace bb;
12using namespace bb::stdlib;
13using namespace cdg;
14
18
25template <size_t N> void fix_field_array(std::array<field_ct, N>& arr)
26{
27 for (auto& elem : arr) {
28 elem.fix_witness();
29 }
30}
31
32TEST(boomerang_stdlib_keccak, test_graph_for_keccakf1600)
33{
35
36 // 25-lane input state as witnesses
38 for (size_t i = 0; i < state.size(); ++i) {
39 state[i] = witness_ct(&builder, static_cast<uint64_t>(i + 1));
40 }
41 fix_field_array(state);
42
43 auto out_state = keccak<Builder>::permutation_opcode(state, &builder);
44 fix_field_array(out_state);
45
46 // Analyze graph structure
48 auto connected_components = graph.find_connected_components();
49 EXPECT_EQ(connected_components.size(), 1);
50
51 auto variables_in_one_gate = graph.get_variables_in_one_gate();
52 EXPECT_EQ(variables_in_one_gate.size(), 0);
53}
std::vector< ConnectedComponent > find_connected_components()
this methond finds all connected components in the graph described by adjacency lists and marks some ...
Definition graph.cpp:903
std::unordered_set< uint32_t > get_variables_in_one_gate()
this method returns a final set of variables that were in one gate
Definition graph.cpp:1442
AluTraceBuilder builder
Definition alu.test.cpp:124
void fix_field_array(std::array< field_ct, N > &arr)
Fix witness for an array of field elements.
TEST(boomerang_stdlib_keccak, test_graph_for_keccakf1600)
witness_t< Builder > witness_ct
Entry point for Barretenberg command-line interface.
Definition api.hpp:5
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
Definition graph.cpp:20
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13