summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authoradamantike <mike@fmanganiello.com.ar>2016-04-23 10:35:26 +0200
committerSybren A. Stüvel <sybren@stuvel.eu>2016-04-23 10:38:21 +0200
commita72efaa6a3709fa8f2079914c68bcb1506fe3064 (patch)
tree44fe545c688a4162e513ab1983b859fa1cfc3162 /tests
parent08e609f59219ca4bbea6cf781d007ca1a4fceb73 (diff)
downloadrsa-git-a72efaa6a3709fa8f2079914c68bcb1506fe3064.tar.gz
Unit test for Mersenne primes
Diffstat (limited to 'tests')
-rw-r--r--tests/test_prime.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/test_prime.py b/tests/test_prime.py
index 57620a1..0ecdaa6 100644
--- a/tests/test_prime.py
+++ b/tests/test_prime.py
@@ -75,6 +75,25 @@ class PrimeTest(unittest.TestCase):
finally:
rsa.randnum.randint = orig_randint
+ def test_mersenne_primes(self):
+ """Tests first known Mersenne primes.
+
+ Mersenne primes are prime numbers that can be written in the form
+ `Mn = 2**n - 1` for some integer `n`. For the list of known Mersenne
+ primes, see:
+ https://en.wikipedia.org/wiki/Mersenne_prime#List_of_known_Mersenne_primes
+ """
+
+ # List of known Mersenne exponents.
+ known_mersenne_exponents = [
+ 2, 3, 5, 7, 13, 17, 19, 31, 61, 89, 107, 127, 521, 607, 1279,
+ 2203, 2281, 4423,
+ ]
+
+ # Test Mersenne primes.
+ for exp in known_mersenne_exponents:
+ self.assertTrue(rsa.prime.is_prime(2**exp - 1))
+
def test_get_primality_testing_rounds(self):
"""Test round calculation for primality testing."""