Skip to content

Commit

Permalink
crypto3: add small fields operations tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ioxid committed Feb 27, 2025
1 parent 863d2ac commit 2a2b37d
Show file tree
Hide file tree
Showing 2 changed files with 158 additions and 12 deletions.
126 changes: 114 additions & 12 deletions crypto3/libs/algebra/test/data/fields.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,80 @@
"field_operation_test_goldilocks": [
{
"constants": [
"2"
"4720277702"
],
"elements_values": [
"9223372035000000000",
"4611686018000000000",
"13835058053000000000",
"4611686017000000000",
"16330093920140140161",
"18446744070000000000",
"16795104342396990661",
"13920735931365696001",
"17711595954652362241",
"4611686018000000000",
"9223372034414584321"
"1641189058637957367",
"3986475446382578135",
"5627664505020535502",
"16101457681669963553",
"15707611882230323291",
"3282378117275914734",
"11172674595619443761",
"15896409218439499114",
"12266928835843360563",
"3986475446382578135",
"16805555010776626954"
]
}
],
"field_operation_test_mersenne31": [
{
"constants": [
"5130158807"
],
"elements_values": [
"928532916",
"448610728",
"1377143644",
"479922188",
"2048579032",
"1857065832",
"101972000",
"114629168",
"679262400",
"448610728",
"1218950731"
]
}
],
"field_operation_test_koalabear": [
{
"constants": [
"357815938"
],
"elements_values": [
"66709692",
"1805603805",
"1872313497",
"391812320",
"1519928708",
"133419384",
"1208961584",
"1395308228",
"1288404775",
"1805603805",
"2063996741"
]
}
],
"field_operation_test_babybear": [
{
"constants": [
"3403622459"
],
"elements_values": [
"1594325016",
"778072100",
"359131195",
"816252916",
"635272438",
"1175384111",
"1718971880",
"1257513411",
"1379083739",
"778072100",
"418940905"
]
}
],
Expand Down Expand Up @@ -96057,6 +96117,48 @@
]
}
],
"field_not_square_test_mersenne31": [
{
"elements_values": [
"3",
"5",
"6",
"7",
"1487318669",
"73340939",
"2114107484",
"109621309"
]
}
],
"field_not_square_test_koalabear": [
{
"elements_values": [
"3",
"5",
"6",
"10",
"748268383",
"2109046107",
"1994876252",
"1757858875"
]
}
],
"field_not_square_test_babybear": [
{
"elements_values": [
"11",
"22",
"23",
"31",
"1591128894",
"1206858873",
"1814108442",
"1616856721"
]
}
],
"field_not_square_test_secp_k1_160_base_field": [
{
"elements_values": [
Expand Down
44 changes: 44 additions & 0 deletions crypto3/libs/algebra/test/fields.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -358,6 +358,27 @@ BOOST_DATA_TEST_CASE(field_operation_test_goldilocks,
field_operation_test<policy_type>(data_set);
}

BOOST_DATA_TEST_CASE(field_operation_test_mersenne31,
string_data("field_operation_test_mersenne31"), data_set) {
using policy_type = fields::mersenne31;

field_operation_test<policy_type>(data_set);
}

BOOST_DATA_TEST_CASE(field_operation_test_koalabear,
string_data("field_operation_test_koalabear"), data_set) {
using policy_type = fields::koalabear;

field_operation_test<policy_type>(data_set);
}

BOOST_DATA_TEST_CASE(field_operation_test_babybear,
string_data("field_operation_test_babybear"), data_set) {
using policy_type = fields::babybear;

field_operation_test<policy_type>(data_set);
}

BOOST_DATA_TEST_CASE(field_operation_test_bls12_381_fr, string_data("field_operation_test_bls12_381_fr"), data_set) {
using policy_type = fields::bls12_fr<381>;

Expand Down Expand Up @@ -575,6 +596,29 @@ BOOST_DATA_TEST_CASE(field_not_square_test_goldilocks,
field_not_square_test<policy_type>(data_set);
}

BOOST_DATA_TEST_CASE(field_not_square_test_mersenne31,
string_data("field_not_square_test_mersenne31"),
data_set) {
using policy_type = typename fields::mersenne31;

field_not_square_test<policy_type>(data_set);
}

BOOST_DATA_TEST_CASE(field_not_square_test_koalabear,
string_data("field_not_square_test_koalabear"),
data_set) {
using policy_type = typename fields::koalabear;

field_not_square_test<policy_type>(data_set);
}

BOOST_DATA_TEST_CASE(field_not_square_test_babybear,
string_data("field_not_square_test_babybear"), data_set) {
using policy_type = typename fields::babybear;

field_not_square_test<policy_type>(data_set);
}

BOOST_AUTO_TEST_CASE(field_not_square_test_secp_k1) {

for(auto const& data_set: string_data("field_not_square_test_secp_k1_160_base_field") ) {
Expand Down

0 comments on commit 2a2b37d

Please sign in to comment.