diff options
Diffstat (limited to 'test/src')
| -rw-r--r-- | test/src/gen/test_gens.c | 4 | ||||
| -rw-r--r-- | test/src/gen/test_order.c | 99 |
2 files changed, 100 insertions, 3 deletions
diff --git a/test/src/gen/test_gens.c b/test/src/gen/test_gens.c index 2092aed..49f82e2 100644 --- a/test/src/gen/test_gens.c +++ b/test/src/gen/test_gens.c @@ -15,7 +15,7 @@ Test(gens, test_gens_gen_any) { .a = mkintmodu(3, 19), .b = mkintmodu(5, 19), .curve = ellinit(mkvec2(stoi(3), stoi(5)), stoi(19), 0), - .order = stoi(16)}; + .order = stoi(26)}; pari_sp to = avma; int ret = gens_gen_any(&curve, NULL, OFFSET_GENERATORS); @@ -45,7 +45,7 @@ Test(gens, test_gens_gen_one) { .a = mkintmodu(3, 19), .b = mkintmodu(5, 19), .curve = ellinit(mkvec2(stoi(3), stoi(5)), stoi(19), 0), - .order = stoi(16)}; + .order = stoi(26)}; pari_sp to = avma; int ret = gens_gen_one(&curve, NULL, OFFSET_GENERATORS); diff --git a/test/src/gen/test_order.c b/test/src/gen/test_order.c index e88724a..aa7dc08 100644 --- a/test/src/gen/test_order.c +++ b/test/src/gen/test_order.c @@ -3,6 +3,103 @@ * Copyright (C) 2017 J08nY */ #include <criterion/criterion.h> +#include "gen/order.h" #include "test/io.h" -TestSuite(order, .init = io_setup, .fini = io_teardown);
\ No newline at end of file +TestSuite(order, .init = io_setup, .fini = io_teardown); + +Test(order, test_order_gen_input) { + curve_t curve = {.field = stoi(19), + .a = mkintmodu(3, 19), + .b = mkintmodu(5, 19), + .curve = ellinit(mkvec2(stoi(3), stoi(5)), stoi(19), 0)}; + cfg->bits = 16; + + long ord = 26; + fprintf(write_in, "%li\n", ord); + int ret = order_gen_input(&curve, NULL, OFFSET_ORDER); + cr_assert_eq(ret, 1, ); + cr_assert(gequal(curve.order, stoi(ord)), ); +} + +Test(order, test_order_gen_any) { + curve_t curve = {.field = stoi(19), + .a = mkintmodu(3, 19), + .b = mkintmodu(5, 19), + .curve = ellinit(mkvec2(stoi(3), stoi(5)), stoi(19), 0)}; + cfg->bits = 16; + + int ret = order_gen_any(&curve, NULL, OFFSET_ORDER); + cr_assert_eq(ret, 1, ); + cr_assert(gequal(curve.order, stoi(26)), ); +} + +Test(order, test_order_gen_sea) { + curve_t curve = {.field = stoi(19), + .a = mkintmodu(3, 19), + .b = mkintmodu(5, 19), + .curve = ellinit(mkvec2(stoi(3), stoi(5)), stoi(19), 0)}; + cfg->bits = 16; + + int ret = order_gen_sea(&curve, NULL, OFFSET_ORDER); + cr_assert_eq(ret, 1, ); + cr_assert(gequal(curve.order, stoi(26)), ); +} + +Test(order, test_order_gen_smallfact) { + curve_t curve = {.field = stoi(19), + .a = mkintmodu(3, 19), + .b = mkintmodu(5, 19), + .curve = ellinit(mkvec2(stoi(3), stoi(5)), stoi(19), 0)}; + cfg->bits = 16; + + pari_ulong smallfact = 5; + arg_t arg = {.args = &smallfact, .nargs = 1}; + + int ret = order_gen_smallfact(&curve, &arg, OFFSET_ORDER); + cr_assert_eq(ret, 1, ); + cr_assert(gequal(curve.order, stoi(26)), ); +} + +Test(order, test_order_gen_prime) { + curve_t curve = {.field = stoi(19), + .a = mkintmodu(1, 19), + .b = mkintmodu(4, 19), + .curve = ellinit(mkvec2(stoi(1), stoi(4)), stoi(19), 0)}; + cfg->bits = 16; + + int ret = order_gen_prime(&curve, NULL, OFFSET_ORDER); + cr_assert_eq(ret, 1, ); + cr_assert(gequal(curve.order, stoi(19)), ); +} + +Test(order, test_order_check_pohlig_hellman) { + curve_t curve = {.field = stoi(19), + .a = mkintmodu(3, 19), + .b = mkintmodu(5, 19), + .curve = ellinit(mkvec2(stoi(3), stoi(5)), stoi(19), 0), + .order = stoi(26)}; + cfg->bits = 16; + + char *min_factor = "12"; + arg_t arg = {.args = min_factor, .nargs = 1}; + + int ret = order_check_pohlig_hellman(&curve, &arg, OFFSET_ORDER); + cr_assert_eq(ret, 1, ); +} + +Test(order, test_order_check_discriminant) { + curve_t curve = {.field = stoi(19), + .a = mkintmodu(3, 19), + .b = mkintmodu(5, 19), + .curve = ellinit(mkvec2(stoi(3), stoi(5)), stoi(19), 0), + .order = stoi(26)}; + cfg->bits = 16; + cfg->field = FIELD_PRIME; + + char *min_factor = "12"; + arg_t arg = {.args = min_factor, .nargs = 1}; + + int ret = order_check_discriminant(&curve, &arg, OFFSET_ORDER); + cr_assert_eq(ret, 1, ); +}
\ No newline at end of file |
