@@ -99,6 +99,34 @@ TEST(Databus, ConstantEntryAccess)
9999 EXPECT_TRUE (CircuitChecker::check (builder));
100100}
101101
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+
102130TEST (Databus, ConstantAndUnnormalizedIndices)
103131{
104132 Builder builder;
@@ -127,9 +155,9 @@ TEST(Databus, ConstantAndUnnormalizedIndices)
127155 field_ct idx_2 = idx_1 + idx_1;
128156 field_ct sum = databus.calldata [idx_0] + databus.calldata [idx_1] + databus.calldata [idx_2];
129157
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);
133161
134162 EXPECT_TRUE (CircuitChecker::check (builder));
135163}
0 commit comments