[libmath-prime-util-perl] 02/16: Add pseudoprime test for MR

Partha P. Mukherjee ppm-guest at moszumanska.debian.org
Thu May 21 18:44:23 UTC 2015


This is an automated email from the git hooks/post-receive script.

ppm-guest pushed a commit to annotated tag v0.06
in repository libmath-prime-util-perl.

commit b7796c83b8943f6d796af78712900b30d502f5ab
Author: Dana Jacobsen <dana at acm.org>
Date:   Fri Jun 8 14:30:57 2012 -0600

    Add pseudoprime test for MR
---
 t/17-pseudoprime.t | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/t/17-pseudoprime.t b/t/17-pseudoprime.t
new file mode 100644
index 0000000..be27d68
--- /dev/null
+++ b/t/17-pseudoprime.t
@@ -0,0 +1,39 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+
+use Test::More;
+use Math::Prime::Util qw/is_prime miller_rabin/;
+
+my $use64 = Math::Prime::Util::_maxbits > 32;
+my $extra = defined $ENV{RELEASE_TESTING} && $ENV{RELEASE_TESTING};
+
+#plan tests => 6 + 19 + 3573 + (5 + 29 + 22 + 23 + 16) + 15 + 27
+#              + ($use64 ? 5+1 : 0)
+#              + ($extra ? 6 : 0)
+#              + (($extra && $use64) ? 19 : 0);
+
+map { ok(miller_rabin($_,2), "Pseudoprime (base 2) $_ passes MR" ) }
+  qw/2047 3277 4033 4681 8321 15841 29341 42799 49141 52633 65281 74665
+     80581 85489 88357 90751/;
+
+my $mr2fail = 0;
+for (2 .. 4032) {
+  next if $_ == 2047 || $_ == 3277;
+  if (is_prime($_)) {
+    if (!miller_rabin($_,2)) { $mr2fail = $_; last; }
+  } else {
+    if (miller_rabin($_,2))  { $mr2fail = $_; last; }
+  }
+}
+is($mr2fail, 0, "miller_rabin matched is_prime for 2-4032 (skipping 2047 & 3277)");
+
+map { ok(miller_rabin($_,3), "Pseudoprime (base 3) $_ passes MR" ) }
+  qw/121 703 1891 3281 8401 8911 10585 12403 16531 18721 19345 23521 31621
+     44287 47197 55969 63139 74593 79003 82513 87913 88573 97567/;
+
+map { ok(miller_rabin($_,5), "Pseudoprime (base 5) $_ passes MR" ) }
+  qw/781 1541 5461 5611 7813 13021 14981 15751 24211 25351 29539 38081
+     40501 44801 53971 79381/;
+
+done_testing();

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libmath-prime-util-perl.git



More information about the Pkg-perl-cvs-commits mailing list