9#include <gtest/gtest.h>
39 .value =
fr(
"0x0000000000000002cf135e7506a45d632d270d45f1181294833fc48d823f272c"),
64 if (constant_scalar) {
68 std::string(
"0x000000000000000000000000000000000000000000000000000000616c696365")),
97 .
varnum =
static_cast<uint32_t
>(witness.size()),
98 .num_acir_opcodes = 1,
100 .multi_scalar_mul_constraints = { msm_constrain },
107 AcirProgram program{ constraint_system, witness };
112 result.second = !
builder.failed();
136 fr(
"0x000000000000000000000000000000000000000000000000000000616c696365"),
137 fr(
"0x0bff8247aa94b08d1c680d7a3e10831bd8c8cf2ea2c756b0d1d89acdcad877ad"),
138 fr(
"0x2a5d7253a6ed48462fedb2d350cc768d13956310f54e73a8a47914f34a34c5c4"),
143 witness.push_back(
fr(0));
146 auto check = check_msm(msm_constrain, witness);
147 EXPECT_TRUE(check.first);
148 EXPECT_TRUE(check.second);
160 fr(
"0x000000000000000000000000000000000000000000000000000000616c696365"),
161 fr(
"0x0bff8247aa94b08d1c680d7a3e10831bd8c8cf2ea2c756b0d1d89acdcad877ad"),
162 fr(
"0x2a5d7253a6ed48462fedb2d350cc768d13956310f54e73a8a47914f34a34c5c4"),
167 witness.push_back(
fr(1));
170 auto check = check_msm(msm_constrain, witness);
171 EXPECT_TRUE(check.first);
172 EXPECT_TRUE(check.second);
179 fr(
"0x000000000000000000000000000000000000000000000000000000616c696365"),
181 fr(
"0x0bff8247aa94b08d1c680d7a3e10831bd8c8cf2ea2c756b0d1d89acdcad877ad"),
182 fr(
"0x2a5d7253a6ed48462fedb2d350cc768d13956310f54e73a8a47914f34a34c5c4"),
186 fr(
"0x0000000000000002cf135e7506a45d632d270d45f1181294833fc48d823f272c"),
190 fr(
"0x000000000000000000000000000000000000000000000000000000616c696365"),
196 witness.push_back(
fr(0));
198 auto check = check_msm(msm_constrain, witness);
199 EXPECT_TRUE(check.first);
200 EXPECT_TRUE(check.second);
207 fr(
"0x000000000000000000000000000000000000000000000000000000616c696365"),
209 fr(
"0x0bff8247aa94b08d1c680d7a3e10831bd8c8cf2ea2c756b0d1d89acdcad877ad"),
210 fr(
"0x2a5d7253a6ed48462fedb2d350cc768d13956310f54e73a8a47914f34a34c5c4"),
214 fr(
"0x0000000000000002cf135e7506a45d632d270d45f1181294833fc48d823f272c"),
218 fr(
"0x000000000000000000000000000000000000000000000000000000616c696365"),
224 witness.push_back(
fr(1));
226 auto check = check_msm(msm_constrain, witness);
227 EXPECT_TRUE(check.first);
228 EXPECT_TRUE(check.second);
236 fr(
"0x000000000000000000000000000000000000000000000000000000616c696365"),
237 fr(
"0x0bff8247aa94b08d1c680d7a3e10831bd8c8cf2ea2c756b0d1d89acdcad877ad"),
238 fr(
"0x2a5d7253a6ed48462fedb2d350cc768d13956310f54e73a8a47914f34a34c5c4"),
243 witness.push_back(
fr(1));
247 msm_constrain.
points[0].value =
fr(0);
249 auto check = check_msm(msm_constrain, witness);
250 EXPECT_FALSE(check.first);
251 EXPECT_FALSE(check.second);
259 fr(
"0x000000000000000000000000000000000000000000000000000000616c696365"),
260 fr(
"0x0bff8247aa94b08d1c680d7a3e10831bd8c8cf2ea2c756b0d1d89acdcad877ad"),
261 fr(
"0x2a5d7253a6ed48462fedb2d350cc768d13956310f54e73a8a47914f34a34c5c4"),
266 witness.push_back(
fr(0));
270 msm_constrain.
points[0].value =
fr(0);
271 msm_constrain.
points[1].value =
fr(2);
272 auto check = check_msm(msm_constrain, witness);
273 EXPECT_TRUE(check.first);
274 EXPECT_TRUE(check.second);
281 fr(
"0x000000000000000000000000000000000000000000000000000000616c696365"),
283 fr(
"0x0bff8247aa94b08d1c680d7a3e10831bd8c8cf2ea2c756b0d1d89acdcad877ad"),
284 fr(
"0x2a5d7253a6ed48462fedb2d350cc768d13956310f54e73a8a47914f34a34c5c4"),
288 fr(
"0x0000000000000002cf135e7506a45d632d270d45f1181294833fc48d823f272d"),
292 fr(
"0x000000000000000000000000000000000000000000000000000000616c696365"),
298 witness.push_back(
fr(0));
300 auto check = check_msm(msm_constrain, witness);
301 EXPECT_TRUE(check.first);
302 EXPECT_TRUE(check.second);
309 fr(
"0x000000000000000000000000000000000000000000000000000000616c696365"),
311 fr(
"0x0bff8247aa94b08d1c680d7a3e10831bd8c8cf2ea2c756b0d1d89acdcad877ad"),
312 fr(
"0x2a5d7253a6ed48462fedb2d350cc768d13956310f54e73a8a47914f34a34c5c4"),
316 fr(
"0x0000000000000002cf135e7506a45d632d270d45f1181294833fc48d823f272d"),
320 fr(
"0x000000000000000000000000000000000000000000000000000000616c696365"),
326 witness.push_back(
fr(1));
328 auto check = check_msm(msm_constrain, witness);
329 EXPECT_FALSE(check.first);
330 EXPECT_FALSE(check.second);
#define BB_DISABLE_ASSERTS()
static bool check(const Builder &circuit)
Check the witness satisifies the circuit.
std::filesystem::path bb_crs_path()
void init_file_crs_factory(const std::filesystem::path &path)
Entry point for Barretenberg command-line interface.
TEST_F(IPATest, ChallengesAreZero)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept