[flint] 08/24: Added powers regression test to t-is_prime and t-is_probabprime.
felix salfelder
felix-guest at moszumanska.debian.org
Wed Jun 25 11:16:11 UTC 2014
This is an automated email from the git hooks/post-receive script.
felix-guest pushed a commit to branch master
in repository flint.
commit d5f1a0bcbe5ec34c23d884a7638b78c6d07979e7
Author: William Hart <goodwillhart at googlemail.com>
Date: Tue Jun 17 15:37:35 2014 +0100
Added powers regression test to t-is_prime and t-is_probabprime.
---
ulong_extras/test/t-is_prime.c | 27 +++++++++++++++++++++++++--
ulong_extras/test/t-is_probabprime.c | 21 +++++++++++++++++++++
2 files changed, 46 insertions(+), 2 deletions(-)
diff --git a/ulong_extras/test/t-is_prime.c b/ulong_extras/test/t-is_prime.c
index d3a4611..dc61f1c 100644
--- a/ulong_extras/test/t-is_prime.c
+++ b/ulong_extras/test/t-is_prime.c
@@ -34,13 +34,16 @@ int main(void)
int i, result;
mp_limb_t d;
mpz_t d_m;
+ slong pow;
+ ulong bits;
FLINT_TEST_INIT(state);
flint_printf("is_prime....");
fflush(stdout);
- for (i = 0; i < 10000 * flint_test_multiplier(); i++) /* Test that primes pass the test */
+ /* Test that primes pass the test */
+ for (i = 0; i < 10000 * flint_test_multiplier(); i++)
{
mpz_init(d_m);
@@ -63,7 +66,8 @@ int main(void)
mpz_clear(d_m);
}
- for (i = 0; i < 10000 * flint_test_multiplier(); i++) /* Test that composites do not pass */
+ /* Test that composites do not pass */
+ for (i = 0; i < 10000 * flint_test_multiplier(); i++)
{
mpz_init(d_m);
@@ -85,6 +89,25 @@ int main(void)
mpz_clear(d_m);
}
+ /* Test that powers do not pass */
+ for (i = 0; i < 10000 * flint_test_multiplier(); i++)
+ {
+ pow = n_randint(state, 6) + 2;
+ bits = n_randint(state, FLINT_BITS) + 1;
+ bits /= pow;
+
+ d = n_randbits(state, bits);
+ d = n_pow(d, pow);
+
+ result = !n_is_prime(d);
+ if (!result)
+ {
+ flint_printf("FAIL:\n");
+ flint_printf("Perfect poweer d = %wu is declared prime\n", d);
+ abort();
+ }
+ }
+
FLINT_TEST_CLEANUP(state);
flint_printf("PASS\n");
diff --git a/ulong_extras/test/t-is_probabprime.c b/ulong_extras/test/t-is_probabprime.c
index 27bb9a8..703adda 100644
--- a/ulong_extras/test/t-is_probabprime.c
+++ b/ulong_extras/test/t-is_probabprime.c
@@ -34,6 +34,8 @@ int main(void)
int i, result;
mp_limb_t d;
mpz_t d_m;
+ slong pow;
+ ulong bits;
FLINT_TEST_INIT(state);
@@ -85,6 +87,25 @@ int main(void)
mpz_clear(d_m);
}
+ /* Test that powers do not pass */
+ for (i = 0; i < 10000 * flint_test_multiplier(); i++)
+ {
+ pow = n_randint(state, 6) + 2;
+ bits = n_randint(state, FLINT_BITS) + 1;
+ bits /= pow;
+
+ d = n_randbits(state, bits);
+ d = n_pow(d, pow);
+
+ result = !n_is_probabprime(d);
+ if (!result)
+ {
+ flint_printf("FAIL:\n");
+ flint_printf("Perfect poweer d = %wu is declared prime\n", d);
+ abort();
+ }
+ }
+
FLINT_TEST_CLEANUP(state);
flint_printf("PASS\n");
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/flint.git
More information about the debian-science-commits
mailing list