[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