diff options
| author | J08nY | 2017-08-29 14:53:36 +0200 |
|---|---|---|
| committer | J08nY | 2017-08-29 14:53:36 +0200 |
| commit | 3da8316ca3edf81cb17e19551d9499855d52905c (patch) | |
| tree | 72ad3145c782e76486817a9340166259d5bf1f49 | |
| parent | d6304dd608a1ad6da025446e06dcb657e1465fad (diff) | |
| download | ecgen-3da8316ca3edf81cb17e19551d9499855d52905c.tar.gz ecgen-3da8316ca3edf81cb17e19551d9499855d52905c.tar.zst ecgen-3da8316ca3edf81cb17e19551d9499855d52905c.zip | |
| -rw-r--r-- | Makefile | 1 | ||||
| -rw-r--r-- | src/math/subgroups.c | 2 | ||||
| -rw-r--r-- | test/Makefile | 8 | ||||
| -rw-r--r-- | test/src/Makefile | 8 | ||||
| -rw-r--r-- | test/src/math/test_subgroups.c | 31 |
5 files changed, 47 insertions, 3 deletions
@@ -15,6 +15,7 @@ clean: clean-all: +$(MAKE) -C lib clean +$(MAKE) -C src clean-all + +$(MAKE) -C test clean-all rm -rf *.gcov rm -rf doc/* diff --git a/src/math/subgroups.c b/src/math/subgroups.c index 903401e..3b84d5c 100644 --- a/src/math/subgroups.c +++ b/src/math/subgroups.c @@ -61,7 +61,7 @@ static GEN subgroups_exponents(GEN order) { GEN subgroups_prime(const curve_t *curve, const config_t *cfg) { if (cfg->prime || isprime(curve->order)) { - return gtovec(curve->order); + return gtocol(curve->order); } else { return subgroups_factors(curve->order); } diff --git a/test/Makefile b/test/Makefile index 8c5fd8b..c39baac 100644 --- a/test/Makefile +++ b/test/Makefile @@ -11,10 +11,14 @@ unittest: unit ecgen econvert unit: cd lib/criterion && mkdir -p build && cd build && cmake .. && cmake --build . - $(MAKE) -C src all + +$(MAKE) -C src all ecgen: ./ecgen.sh econvert: - ./econvert.sh
\ No newline at end of file + ./econvert.sh + +clean-all: + cd lib/criterion && rm -r build + +$(MAKE) -C src clean-all
\ No newline at end of file diff --git a/test/src/Makefile b/test/src/Makefile index e9d3d8e..04279be 100644 --- a/test/src/Makefile +++ b/test/src/Makefile @@ -28,3 +28,11 @@ test_ecgen: $(TEST_OBJ) $(ECGEN_OBJ) %.o: %.c $(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $< +clean-all: clean + rm -f ./test_ecgen + +clean: + find . -type f -name '*.o' -exec rm {} + + find . -type f -name '*.gcda' -exec rm {} + + find . -type f -name '*.gcno' -exec rm {} + + find . -type f -name '*.gcov' -exec rm {} + diff --git a/test/src/math/test_subgroups.c b/test/src/math/test_subgroups.c new file mode 100644 index 0000000..fa81788 --- /dev/null +++ b/test/src/math/test_subgroups.c @@ -0,0 +1,31 @@ +/* + * ecgen, tool for generating Elliptic curve domain parameters + * Copyright (C) 2017 J08nY + */ +#include "gen/types.h" +#include "math/subgroups.h" +#include <criterion/criterion.h> + +void setup(void) { + pari_init(1000000000, 1000000); +} + +TestSuite(subgroups, .init=setup); + +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); + cr_assert(gequal(divs, vec), "Factors not equal!"); +} + +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)); + cr_assert(gequal(divs, vec), "Factors not equal!"); +}
\ No newline at end of file |
