4#include <gmock/gmock.h>
5#include <gtest/gtest.h>
15using ::testing::IsEmpty;
16using ::testing::SizeIs;
22using simulation::FakePoseidon2;
24TEST(AvmSimulationClassIdDerivationTest, Positive)
26 EventEmitter<ClassIdDerivationEvent> class_id_derivation_event_emitter;
27 FakePoseidon2
poseidon2 = FakePoseidon2();
29 ClassIdDerivation class_id_derivation(
poseidon2, class_id_derivation_event_emitter);
31 ContractClass klass = { .artifact_hash = FF::random_element(),
32 .private_function_root = FF::random_element(),
33 .public_bytecode_commitment = FF::random_element(),
34 .packed_bytecode = { 0x01, 0x02, 0x03, 0x04 } };
37 klass.private_function_root,
38 klass.public_bytecode_commitment });
40 class_id_derivation.assert_derivation(class_id, klass);
42 auto events = class_id_derivation_event_emitter.dump_events();
43 EXPECT_THAT(events, SizeIs(1));
44 EXPECT_EQ(events[0].class_id, class_id);
45 EXPECT_EQ(events[0].klass.artifact_hash, klass.artifact_hash);
48 class_id_derivation.assert_derivation(class_id, klass);
49 events = class_id_derivation_event_emitter.dump_events();
50 EXPECT_THAT(events, IsEmpty());
#define GENERATOR_INDEX__CONTRACT_LEAF
static FF hash(const std::vector< FF > &input)
Hashes a vector of field elements.
TEST(EmitUnencryptedLogTest, Basic)