diff options
| author | J08nY | 2017-08-30 00:11:18 +0200 |
|---|---|---|
| committer | J08nY | 2017-08-30 00:11:18 +0200 |
| commit | e14198f1feaf82cf6d803ab51d440afa8eee4cdd (patch) | |
| tree | e3e320dce027be9b0934b5a5bb9c00ee250462ba /test/src/math/test_subgroups.c | |
| parent | dad32a97eb61ddb4c9cbbb6b87d26de25f966b91 (diff) | |
| download | ecgen-e14198f1feaf82cf6d803ab51d440afa8eee4cdd.tar.gz ecgen-e14198f1feaf82cf6d803ab51d440afa8eee4cdd.tar.zst ecgen-e14198f1feaf82cf6d803ab51d440afa8eee4cdd.zip | |
Fix subgroup order enumeration, that broke point enumeration for some curves.
Diffstat (limited to 'test/src/math/test_subgroups.c')
| -rw-r--r-- | test/src/math/test_subgroups.c | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/test/src/math/test_subgroups.c b/test/src/math/test_subgroups.c index ad42282..b554def 100644 --- a/test/src/math/test_subgroups.c +++ b/test/src/math/test_subgroups.c @@ -13,9 +13,15 @@ Test(subgroups, test_prime_factors) { curve_t curve = {.order = stoi(12)}; config_t cfg = {.prime = false}; GEN divs = subgroups_prime(&curve, &cfg); - GEN vec = gtocol0(gen_0, 2); - gel(vec, 1) = stoi(2); - gel(vec, 2) = stoi(3); + GEN vec = mkvec2s(2, 3); + cr_assert(gequal(divs, vec), "Factors not equal!"); +} + +Test(subgroups, test_prime_factors_other) { + curve_t curve = {.order = stoi(27)}; + config_t cfg = {.prime = false}; + GEN divs = subgroups_prime(&curve, &cfg); + GEN vec = gtovec(stoi(3)); cr_assert(gequal(divs, vec), "Factors not equal!"); } @@ -23,6 +29,25 @@ Test(subgroups, test_prime_prime) { curve_t curve = {.order = stoi(5)}; config_t cfg = {.prime = true}; GEN divs = subgroups_prime(&curve, &cfg); - GEN vec = gtocol(stoi(5)); + GEN vec = gtovec(stoi(5)); cr_assert(gequal(divs, vec), "Factors not equal!"); -}
\ No newline at end of file +} + +Test(subgroups, test_nonprime_factors) { + // curve = ellinit([1, 3], 23), order = 27 + curve_t curve = {.order = stoi(27), .ngens = 1}; + config_t cfg = {.prime = false}; + GEN divs = subgroups_nonprime(&curve, &cfg); + GEN vec = mkvec2s(9, 27); + cr_assert(gequal(divs, vec), + "Factors not equal!"); +} + +Test(subgroups, test_all_factors) { + // curve = ellinit([1, 3], 23), order = 27 + curve_t curve = {.order = stoi(27), .ngens = 1}; + config_t cfg = {.prime = false}; + GEN divs = subgroups_all(&curve, &cfg); + GEN vec = mkvec3s(3, 9, 27); + cr_assert(gequal(divs, vec), "Factors not equal!"); +} |
