8#include <gmock/gmock.h>
9#include <gtest/gtest.h>
13using ::testing::ElementsAre;
14using ::testing::Return;
15using ::testing::StrictMock;
19TEST(AvmSimulationGTTest, GTTrue)
23 StrictMock<MockFieldGreaterThan>
field_gt;
29 EXPECT_CALL(range_check, assert_range(0, 16));
36 EXPECT_THAT(events, ElementsAre(GreaterThanEvent{ .a =
a, .b =
b, .result = c }));
39TEST(AvmSimulationGTTest, GTTrueDiffPowerOf2To16)
43 StrictMock<MockFieldGreaterThan>
field_gt;
49 EXPECT_CALL(range_check, assert_range(1 << 16, 32));
56 EXPECT_THAT(events, ElementsAre(GreaterThanEvent{ .a =
a, .b =
b, .result = c }));
59TEST(AvmSimulationGTTest, GTFalse)
63 StrictMock<MockFieldGreaterThan>
field_gt;
71 EXPECT_CALL(range_check, assert_range(u128_max - 2, 128));
78 EXPECT_THAT(events, ElementsAre(GreaterThanEvent{ .a =
a, .b =
b, .result = c }));
81TEST(AvmSimulationGTTest, GTFF)
85 StrictMock<MockFieldGreaterThan>
field_gt;
89 FF b = FF::modulus - 3;
91 EXPECT_CALL(
field_gt, ff_gt(
FF(2),
FF(FF::modulus - 3))).WillOnce(Return(
false));
94 EXPECT_CALL(
field_gt, ff_gt(
FF(FF::modulus - 3),
FF(2))).WillOnce(Return(
true));
98TEST(AvmSimulationGTTest, GTMemoryValue)
102 StrictMock<MockFieldGreaterThan>
field_gt;
105 auto a = MemoryValue::from<uint64_t>(2);
106 auto b = MemoryValue::from<uint64_t>(1);
108 EXPECT_CALL(range_check, assert_range(0, 16));
111 auto a_ff = MemoryValue::from<FF>(1);
112 auto b_ff = MemoryValue::from<FF>(2);
114 EXPECT_CALL(
field_gt, ff_gt(
FF(1),
FF(2))).WillOnce(Return(
false));
115 EXPECT_FALSE(
gt.
gt(a_ff, b_ff));
bool gt(const FF &a, const FF &b) override
EventEmitter< GreaterThanEvent > gt_event_emitter
TEST(EmitUnencryptedLogTest, Basic)
unsigned __int128 uint128_t
NiceMock< MockFieldGreaterThan > field_gt