1#include <gmock/gmock.h>
2#include <gtest/gtest.h>
17using tracegen::KeccakF1600TraceBuilder;
18using tracegen::TestTraceContainer;
23TEST(KeccakF1600ConstrainingTest, EmptyRow)
29TEST(KeccakF1600ConstrainingTest, SinglewithSimulationAndTraceGenInteractions)
31 TestTraceContainer
trace;
38 check_all_interactions<tracegen::KeccakF1600TraceBuilder>(
trace);
39 check_relation<keccakf1600_relation>(
trace);
40 check_relation<keccak_memory_relation>(
trace);
45TEST(KeccakF1600ConstrainingTest, MultipleWithSimulationAndTraceGenInteractions)
47 TestTraceContainer
trace;
49 constexpr size_t NUM_PERMUTATIONS = 3;
54 for (
size_t k = 0; k < NUM_PERMUTATIONS; ++k) {
56 dst_addresses.at(k) =
static_cast<MemoryAddress>((k * 200) + 1000);
61 check_all_interactions<tracegen::KeccakF1600TraceBuilder>(
trace);
62 check_relation<keccakf1600_relation>(
trace);
63 check_relation<keccak_memory_relation>(
trace);
70TEST(KeccakF1600ConstrainingTest, TagErrorHandling)
72 TestTraceContainer
trace;
76 const uint32_t space_id = 79;
79 const size_t error_offset = 7;
84 check_all_interactions<tracegen::KeccakF1600TraceBuilder>(
trace);
85 check_relation<keccakf1600_relation>(
trace);
86 check_relation<keccak_memory_relation>(
trace);
90TEST(KeccakF1600ConstrainingTest, SrcAddressOutOfBounds)
92 TestTraceContainer
trace;
96 const uint32_t space_id = 23;
100 check_all_interactions<tracegen::KeccakF1600TraceBuilder>(
trace);
101 check_relation<keccakf1600_relation>(
trace);
102 check_relation<keccak_memory_relation>(
trace);
106TEST(KeccakF1600ConstrainingTest, DstAddressOutOfBounds)
108 TestTraceContainer
trace;
112 const uint32_t space_id = 23;
116 check_all_interactions<tracegen::KeccakF1600TraceBuilder>(
trace);
117 check_relation<keccakf1600_relation>(
trace);
118 check_relation<keccak_memory_relation>(
trace);
#define AVM_KECCAKF1600_STATE_SIZE
#define AVM_HIGHEST_MEM_ADDRESS
TEST(TxExecutionConstrainingTest, WriteTreeValue)
void generate_keccak_trace_with_slice_error(TestTraceContainer &trace, MemoryAddress dst_address, MemoryAddress src_address, uint32_t space_id)
void generate_keccak_trace_with_tag_error(TestTraceContainer &trace, MemoryAddress dst_address, MemoryAddress src_address, size_t error_offset, MemoryTag error_tag, uint32_t space_id)
void generate_keccak_trace(TestTraceContainer &trace, const std::vector< MemoryAddress > &dst_addresses, const std::vector< MemoryAddress > &src_addresses, uint32_t space_id)
TestTraceContainer empty_trace()
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept