aboutsummaryrefslogtreecommitdiff
path: root/test/src/math/test_subgroups.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/src/math/test_subgroups.c')
-rw-r--r--test/src/math/test_subgroups.c35
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!");
+}