4#include <gtest/gtest.h>
12 size_t len = FrCodec::calc_num_fields<T>();
14 EXPECT_EQ(
len, frs.size());
15 auto y = FrCodec::deserialize_from_fields<T>(frs);
25 auto x =
static_cast<uint32_t
>(1) << 31;
34 bb::fr x1(std::string(
"9a807b615c4d3e2fa0b1c2d3e4f56789fedcba9876543210abcdef0123456789"));
47 grumpkin::fr x1(std::string(
"9a807b615c4d3e2fa0b1c2d3e4f56789fedcba9876543210abcdef0123456789"));
101 check_conversion(x1);
110 check_conversion(x2);
120 check_conversion(x1);
129 check_conversion(x2);
140 check_conversion(x1);
151 check_conversion(x1);
160 uint256_t chal_raw(std::string(
"9a807b615c4d3e2fa0b1c2d3e4f56789fedcba9876543210abcdef0123456789"));
162 auto result = FrCodec::convert_challenge<grumpkin::fr>(chal);
182 auto point = FrCodec::deserialize_from_fields<curve::BN254::AffineElement>(fr_vec);
183 EXPECT_TRUE(point.is_point_at_infinity());
189 auto point = FrCodec::deserialize_from_fields<curve::Grumpkin::AffineElement>(fr_vec);
190 EXPECT_TRUE(point.is_point_at_infinity());
230 constexpr uint64_t LIMB_BITS = 68;
232 uint256_t gq_hi = gq::modulus >> (LIMB_BITS * 2);
233 std::vector<bb::fr> vec = {
bb::fr(gq_lo),
bb::fr(gq_hi) };
239 constexpr uint64_t LIMB_BITS = 68;
246 constexpr uint64_t LIMB_BITS = 68;
263 EXPECT_THROW_OR_ABORT(FrCodec::deserialize_from_fields<curve::BN254::AffineElement>(fr_vec),
"on_curve");
268 std::vector<bb::fr> fr_vec = {
bb::fr(12),
bb::fr(100) };
269 EXPECT_THROW_OR_ABORT(FrCodec::deserialize_from_fields<curve::Grumpkin::AffineElement>(fr_vec),
"on_curve");
286 auto result = U256Codec::deserialize_from_fields<bb::fr>(vec);
287 EXPECT_EQ(result,
bb::fr(0));
292 auto result = U256Codec::deserialize_from_fields<bb::fr>(vec);
293 EXPECT_EQ(result,
bb::fr(1));
298 auto result = U256Codec::deserialize_from_fields<bb::fr>(vec);
310 auto result = U256Codec::deserialize_from_fields<fq>(vec);
311 EXPECT_EQ(result,
fq(0));
314 result = U256Codec::deserialize_from_fields<fq>(vec);
#define EXPECT_THROW_OR_ABORT(statement, matcher)
static std::vector< fr > serialize_to_fields(const T &val)
Conversion from transcript values to bb::frs.
A univariate polynomial represented by its values on {0, 1,..., domain_end - 1}.
typename Group::affine_element AffineElement
typename Group::affine_element AffineElement
void check_conversion(T x)
constexpr uint256_t slice(uint64_t start, uint64_t end) const
const std::vector< MemoryValue > data
TEST_F(FieldConversionTest, FieldConversionUint32)
Field conversion test for uint32_t.
field< Bn254FqParams > fq
field< Bn254FrParams > fr
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
static constexpr uint256_t modulus
BB_INLINE constexpr field sqr() const noexcept
static constexpr uint256_t modulus_minus_two
static constexpr bb::fr b
static constexpr bb::fr a