17#include <gtest/gtest.h>
21template <
typename F>
class FieldTest :
public ::testing::Test {};
24 Types<bb::fq, bb::fr, secp256k1::fq, secp256k1::fr, secp256r1::fq, secp256r1::fr, bb::fq2, bb::fq6, bb::fq12>;
39 EXPECT_EQ(
a + zero,
a);
40 EXPECT_EQ(zero +
a,
a);
50 EXPECT_EQ(
a * one,
a);
51 EXPECT_EQ(one *
a,
a);
78 EXPECT_EQ(
a +
b,
b +
a);
91 EXPECT_EQ(a_plus_b + c,
a + b_plus_c);
100 using FF = TypeParam;
106 EXPECT_EQ(
a -
b,
a + neg_b);
111 using FF = TypeParam;
115 FF result =
a + neg_a;
122 using FF = TypeParam;
127 EXPECT_EQ(zero, neg_zero);
132 using FF = TypeParam;
144 using FF = TypeParam;
149 EXPECT_EQ(
a *
b,
b *
a);
154 using FF = TypeParam;
160 EXPECT_EQ((
a *
b) * c,
a * (
b * c));
165 using FF = TypeParam;
171 EXPECT_EQ(
a * (
b + c), (
a *
b) + (
a * c));
176 using FF = TypeParam;
191 using FF = TypeParam;
195 FF mul_result =
a *
a;
197 EXPECT_EQ(sqr_result, mul_result);
202 using FF = TypeParam;
208 FF lhs = (
a -
b) * (
a +
b);
220 using FF = TypeParam;
224 FF result =
a * a_inv;
231 using FF = TypeParam;
240 using FF = TypeParam;
245 EXPECT_EQ(a_inv_inv,
a);
254 using FF = TypeParam;
260 EXPECT_EQ(a_copy, -
a);
265 using FF = TypeParam;
272 EXPECT_EQ(
a, expected);
277 using FF = TypeParam;
284 EXPECT_EQ(
a, expected);
289 using FF = TypeParam;
296 EXPECT_EQ(
a, expected);
301 using FF = TypeParam;
307 EXPECT_EQ(
a, expected);
316 using FF = TypeParam;
325 FF product =
a * three;
327 EXPECT_EQ(
sum, product);
332 using FF = TypeParam;
336 FF four_a =
a +
a +
a +
a;
337 FF result = four_a -
a;
340 FF expected =
a * three;
342 EXPECT_EQ(result, expected);
::testing::Types< bb::fq, bb::fr, secp256k1::fq, secp256k1::fr, secp256r1::fq, secp256r1::fr, bb::fq2, bb::fq6, bb::fq12 > AllFieldTypes
Entry point for Barretenberg command-line interface.
TYPED_TEST_SUITE(ShpleminiTest, TestSettings)
Inner sum(Cont< Inner, Args... > const &in)
TYPED_TEST(ShpleminiTest, CorrectnessOfMultivariateClaimBatching)
static constexpr field one()
BB_INLINE constexpr void self_sqr() &noexcept
constexpr field invert() const noexcept
BB_INLINE constexpr void self_neg() &noexcept
static field random_element(numeric::RNG *engine=nullptr) noexcept
BB_INLINE constexpr field sqr() const noexcept
BB_INLINE constexpr bool is_zero() const noexcept
static constexpr field zero()