@@ -99,6 +99,34 @@ TEST(Databus, ConstantEntryAccess)
99
99
EXPECT_TRUE (CircuitChecker::check (builder));
100
100
}
101
101
102
+ TEST (Databus, UnnormalizedEntryAccess)
103
+ {
104
+
105
+ Builder builder;
106
+ databus_ct databus;
107
+ std::array<fr, 3 > raw_calldata_entries = { 3 , 2 , 1 };
108
+ std::array<fr, 3 > raw_returndata_entries = { 6 , 4 , 2 };
109
+ std::vector<field_ct> calldata_entries;
110
+ for (fr entry : raw_calldata_entries) {
111
+ field_ct entry_witness = witness_ct (&builder, entry);
112
+ // add the value to itself to make it unnormalized
113
+ calldata_entries.emplace_back (entry_witness + entry_witness);
114
+ }
115
+ std::vector<field_ct> returndata_entries;
116
+ for (fr entry : raw_returndata_entries) {
117
+ returndata_entries.emplace_back (witness_ct (&builder, entry));
118
+ }
119
+ databus.calldata .set_values (calldata_entries);
120
+ databus.return_data .set_values (returndata_entries);
121
+ field_ct idx_0 = witness_ct (&builder, 0 );
122
+ field_ct idx_1 = witness_ct (&builder, 1 );
123
+ field_ct idx_2 = witness_ct (&builder, 2 );
124
+ databus.return_data [idx_0].assert_equal (databus.calldata [idx_0]);
125
+ databus.return_data [idx_1].assert_equal (databus.calldata [idx_1]);
126
+ databus.return_data [idx_2].assert_equal (databus.calldata [idx_2]);
127
+ EXPECT_TRUE (CircuitChecker::check (builder));
128
+ }
129
+
102
130
TEST (Databus, ConstantAndUnnormalizedIndices)
103
131
{
104
132
Builder builder;
@@ -127,9 +155,9 @@ TEST(Databus, ConstantAndUnnormalizedIndices)
127
155
field_ct idx_2 = idx_1 + idx_1;
128
156
field_ct sum = databus.calldata [idx_0] + databus.calldata [idx_1] + databus.calldata [idx_2];
129
157
130
- databus.return_data [0 ].assert_equal (databus.calldata [0 ]);
131
- databus.return_data [1 ].assert_equal (databus.calldata [1 ]);
132
- databus.return_data [2 ].assert_equal (sum);
158
+ databus.return_data [idx_0 ].assert_equal (databus.calldata [idx_0 ]);
159
+ databus.return_data [idx_1 ].assert_equal (databus.calldata [idx_1 ]);
160
+ databus.return_data [idx_2 ].assert_equal (sum);
133
161
134
162
EXPECT_TRUE (CircuitChecker::check (builder));
135
163
}
0 commit comments