51
51
52
52
class TestPrimality (unittest .TestCase ):
53
53
54
- primes = (13 , 17 , 19 , 23 , 2 ** 127 - 1 , 175637383534939453397801320455508570374088202376942372758907369518414308188137781042871856139027160010343454418881888953150175357127346872102307696660678617989191485418582475696230580407111841072614783095326672517315988762029036079794994990250662362650625650262324085116467511357592728695033227611029693067539 )
55
- composites = (12 , 7 * 23 , (2 ** 19 - 1 )* (2 ** 67 - 1 ), 9746347772161 ,)
54
+ primes = (1 , 2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 , 23 , 2 ** 127 - 1 , 175637383534939453397801320455508570374088202376942372758907369518414308188137781042871856139027160010343454418881888953150175357127346872102307696660678617989191485418582475696230580407111841072614783095326672517315988762029036079794994990250662362650625650262324085116467511357592728695033227611029693067539 )
55
+ composites = (0 , 4 , 6 , 8 , 9 , 10 , 12 , 14 , 15 , 16 , 18 , 20 , 21 , 7 * 23 , (2 ** 19 - 1 )* (2 ** 67 - 1 ), 9746347772161 ,)
56
56
57
57
def test_miller_rabin (self ):
58
58
for prime in self .primes :
59
59
self .assertEqual (miller_rabin_test (prime , 3 ), PROBABLY_PRIME )
60
60
for composite in self .composites :
61
61
self .assertEqual (miller_rabin_test (composite , 3 ), COMPOSITE )
62
+ self .assertRaises (ValueError , miller_rabin_test , - 1 , 3 )
62
63
63
64
def test_lucas (self ):
64
65
for prime in self .primes :
65
- self .assertEqual (lucas_test (prime ), PROBABLY_PRIME )
66
+ res = lucas_test (prime )
67
+ self .assertEqual (res , PROBABLY_PRIME )
66
68
for composite in self .composites :
67
- self .assertEqual (lucas_test (composite ), COMPOSITE )
69
+ res = lucas_test (composite )
70
+ self .assertEqual (res , COMPOSITE )
71
+ self .assertRaises (ValueError , lucas_test , - 1 )
68
72
69
73
def test_is_prime (self ):
70
74
primes = (170141183460469231731687303715884105727 ,
@@ -82,6 +86,11 @@ def test_is_prime(self):
82
86
for np in not_primes :
83
87
self .assertEqual (test_probable_prime (np ), COMPOSITE )
84
88
89
+ from Crypto .Util .number import sieve_base
90
+ for p in sieve_base [:100 ]:
91
+ res = test_probable_prime (p )
92
+ self .assertEqual (res , PROBABLY_PRIME )
93
+
85
94
def test_generate_prime_bit_size (self ):
86
95
p = generate_probable_prime (exact_bits = 512 )
87
96
self .assertEqual (p .size_in_bits (), 512 )
0 commit comments