3#include <gtest/gtest.h>
16 size_t len = bb::stdlib::field_conversion::calc_num_bn254_frs<Builder, T>();
17 auto frs = bb::stdlib::field_conversion::convert_to_bn254_frs<Builder, T>(x);
18 EXPECT_EQ(
len, frs.size());
19 auto y = bb::stdlib::field_conversion::convert_from_bn254_frs<Builder, T>(
builder, frs);
20 EXPECT_EQ(x.get_value(), y.get_value());
25 size_t len = bb::stdlib::field_conversion::calc_num_bn254_frs<Builder, T>();
26 auto frs = bb::stdlib::field_conversion::convert_to_bn254_frs<Builder, T>(x);
27 EXPECT_EQ(
len, frs.size());
28 auto y = bb::stdlib::field_conversion::convert_from_bn254_frs<Builder, T>(
builder, frs);
29 EXPECT_EQ(x.size(), y.size());
30 for (
auto [val1, val2] :
zip_view(x, y)) {
31 EXPECT_EQ(val1.get_value(), val2.get_value());
36using BuilderTypes = testing::Types<UltraCircuitBuilder, MegaCircuitBuilder>;
47 bb::fr x1_val(std::string(
"9a807b615c4d3e2fa0b1c2d3e4f56789fedcba9876543210abcdef0123456789"));
49 this->check_conversion(
builder, x1);
53 this->check_conversion(
builder, x2);
57 this->check_conversion(
builder, x3);
69 grumpkin::fr x1_val(std::string(
"9a807b615c4d3e2fa0b1c2d3e4f56789fedcba9876543210abcdef0123456789"));
71 this->check_conversion(
builder, x1);
86 this->check_conversion(
builder, x1);
90 this->check_conversion(
builder, x2);
105 this->check_conversion(
builder, x1);
109 this->check_conversion(
builder, x2);
124 this->check_conversion_iterable(
builder, x1);
133 this->check_conversion_iterable(
builder, x2);
148 static_cast<grumpkin::fr>(std::string(
"9a807b615c4d3e2fa0b1c2d3e4f56789fedcba9876543210abcdef0123456789"))),
151 static_cast<grumpkin::fr>(std::string(
"2bf1eaf87f7d27e8dc4056e9af975985bccc89077a21891d6c7b6ccce0631f95"))),
154 static_cast<grumpkin::fr>(std::string(
"9a807b615c4d3e2fa0b1c2d3e4f56789fedcba9876543210abcdef0123456789"))),
157 static_cast<grumpkin::fr>(std::string(
"018555a8eb50cf07f64b019ebaf3af3c925c93e631f3ecd455db07bbb52bbdd3"))),
159 this->check_conversion_iterable(
builder, x1);
174 this->check_conversion_iterable(
builder, x);
189 std::string(
"9a807b615c4d3e2fa0b1c2d3e4f56789fedcba9876543210abcdef0123456789"))),
192 std::string(
"2bf1eaf87f7d27e8dc4056e9af975985bccc89077a21891d6c7b6ccce0631f95"))),
195 std::string(
"018555a8eb50cf07f64b019ebaf3af3c925c93e631f3ecd455db07bbb52bbdd3"))),
198 std::string(
"2bf1eaf87f7d27e8dc4056e9af975985bccc89077a21891d6c7b6ccce0631f95"))) }
200 this->check_conversion_iterable(
builder, x);
212 bb::fr chal_val(std::string(
"9a807b615c4d3e2fa0b1c2d3e4f56789fedcba9876543210abcdef0123456789"));
214 auto result = bb::stdlib::field_conversion::convert_challenge<Builder, fq<Builder>>(
builder, chal);
215 auto expected =
uint256_t(chal.get_value());
216 EXPECT_EQ(
uint256_t(result.get_value()), expected);
A univariate polynomial represented by its values on {domain_start, domain_start + 1,...
typename Group::affine_element AffineElement
typename Group::affine_element AffineElement
cycle_group represents a group Element of the proving system's embedded curve i.e....
void check_conversion(Builder &builder, T x)
void check_conversion_iterable(Builder &builder, T x)
testing::Types< UltraCircuitBuilder, MegaCircuitBuilder > BuilderTypes
element< Builder, fq< Builder >, fr< Builder >, curve::BN254::Group > bn254_element
std::conditional_t< IsGoblinBigGroup< C, Fq, Fr, G >, element_goblin::goblin_element< C, goblin_field< C >, Fr, G >, element_default::element< C, Fq, Fr, G > > element
element wraps either element_default::element or element_goblin::goblin_element depending on parametr...
TYPED_TEST_SUITE(ShpleminiTest, TestSettings)
TYPED_TEST(ShpleminiTest, CorrectnessOfMultivariateClaimBatching)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
static constexpr uint256_t modulus_minus_two