19#include <gmock/gmock.h>
60 for (
size_t i = 0; i < src_addresses.size(); i++) {
61 memory_init_fn(memory_simulator, i);
63 ASSERT_THROW(keccak_simulator.
permutation(memory_simulator, dst_addresses.at(i), src_addresses.at(i)),
66 keccak_simulator.
permutation(memory_simulator, dst_addresses.at(i), src_addresses.at(i));
92 for (
size_t j = 0; j < 5; j++) {
93 for (
size_t k = 0; k < 5; k++) {
94 memory_simulator.
set(src_addresses[i] +
static_cast<MemoryAddress>((5 * j) + k),
95 MemoryValue::from<uint64_t>((
static_cast<uint64_t
>(j) << 32) + k + (100 * i)));
117 for (
size_t j = 0; j < 5; j++) {
118 for (
size_t k = 0; k < 5; k++) {
119 const size_t idx = (5 * j) + k;
120 if (idx == error_offset) {
121 memory_simulator.
set(
126 MemoryValue::from<uint64_t>((
static_cast<uint64_t
>(j) << 32) + k + 100));
#define AVM_KECCAKF1600_STATE_SIZE
#define AVM_HIGHEST_MEM_ADDRESS
static TaggedValue from_tag_truncating(ValueTag tag, FF value)
void permutation(MemoryInterface &memory, MemoryAddress dst_addr, MemoryAddress src_addr) override
Permutation Keccak-f[1600] consisting in AVM_KECCAKF1600_NUM_ROUNDS (24) rounds and a state of 25 64-...
void set(MemoryAddress index, MemoryValue value) override
void process(const simulation::EventEmitterInterface< simulation::BitwiseEvent >::Container &events, TraceContainer &trace)
void process_memory_slices(const simulation::EventEmitterInterface< simulation::KeccakF1600Event >::Container &events, TraceContainer &trace)
void process_permutation(const simulation::EventEmitterInterface< simulation::KeccakF1600Event >::Container &events, TraceContainer &trace)
void process(const simulation::EventEmitterInterface< simulation::MemoryEvent >::Container &events, TraceContainer &trace)
void process_keccak_round_constants(TraceContainer &trace)
void process_misc(TraceContainer &trace, const uint32_t num_rows=MAX_AVM_TRACE_SIZE)
void process(const simulation::EventEmitterInterface< simulation::RangeCheckEvent >::Container &events, TraceContainer &trace)
RangeCheckTraceBuilder range_check_builder
PrecomputedTraceBuilder precomputed_builder
ExecutionIdManager execution_id_manager
EventEmitter< RangeCheckEvent > range_check_event_emitter
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)
void generate_keccak_trace_impl(TestTraceContainer &trace, const std::function< void(MemorySimulator &, size_t)> &memory_init_fn, const std::vector< MemoryAddress > &dst_addresses, const std::vector< MemoryAddress > &src_addresses, bool expect_error, uint32_t space_id)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
NoopEventEmitter< BitwiseEvent > bitwise_event_emitter
NoopEventEmitter< KeccakF1600Event > keccak_event_emitter