Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
gt_trace.test.cpp
Go to the documentation of this file.
1#include <gmock/gmock.h>
2#include <gtest/gtest.h>
3
4#include <cstdint>
5
11
12namespace bb::avm2::tracegen {
13namespace {
14
15using testing::ElementsAre;
16
18
19TEST(GTTraceGenTest, TraceGenerationGT)
20{
21 TestTraceContainer trace;
22 GreaterThanTraceBuilder builder;
23
24 uint128_t u128_max = static_cast<uint128_t>((uint256_t(1) << 128) - 1);
25
27 {
28 { .a = 2, .b = 1, .result = true },
29 { .a = 1, .b = u128_max, .result = false },
30 },
31 trace);
32
33 EXPECT_THAT(trace.as_rows(),
34 ElementsAre(AllOf(ROW_FIELD_EQ(gt_sel, 1),
35 ROW_FIELD_EQ(gt_input_a, 2),
36 ROW_FIELD_EQ(gt_input_b, 1),
37 ROW_FIELD_EQ(gt_res, 1),
38 ROW_FIELD_EQ(gt_abs_diff, 0),
39 ROW_FIELD_EQ(gt_num_bits, 16)),
40 AllOf(ROW_FIELD_EQ(gt_sel, 1),
41 ROW_FIELD_EQ(gt_input_a, 1),
42 ROW_FIELD_EQ(gt_input_b, u128_max),
43 ROW_FIELD_EQ(gt_res, 0),
44 ROW_FIELD_EQ(gt_abs_diff, u128_max - 1),
45 ROW_FIELD_EQ(gt_num_bits, 128))));
46}
47
48} // namespace
49} // namespace bb::avm2::tracegen
void process(const simulation::EventEmitterInterface< simulation::AluEvent >::Container &events, TraceContainer &trace)
std::vector< AvmFullRowConstRef > as_rows() const
AluTraceBuilder builder
Definition alu.test.cpp:123
TestTraceContainer trace
#define ROW_FIELD_EQ(field_name, expression)
Definition macros.hpp:15
TEST(EmitUnencryptedLogTest, Basic)
unsigned __int128 uint128_t
Definition serialize.hpp:44