44import unittest
55
66
7- def prime_check (number : int ) -> bool :
7+ def is_prime (number : int ) -> bool :
88 """Checks to see if a number is a prime in O(sqrt(n)).
99
1010 A number is prime if it has exactly two factors: 1 and itself.
1111
12- >>> prime_check (0)
12+ >>> is_prime (0)
1313 False
14- >>> prime_check (1)
14+ >>> is_prime (1)
1515 False
16- >>> prime_check (2)
16+ >>> is_prime (2)
1717 True
18- >>> prime_check (3)
18+ >>> is_prime (3)
1919 True
20- >>> prime_check (27)
20+ >>> is_prime (27)
2121 False
22- >>> prime_check (87)
22+ >>> is_prime (87)
2323 False
24- >>> prime_check (563)
24+ >>> is_prime (563)
2525 True
26- >>> prime_check (2999)
26+ >>> is_prime (2999)
2727 True
28- >>> prime_check (67483)
28+ >>> is_prime (67483)
2929 False
3030 """
3131
32+ # precondition
33+ assert isinstance (number , int ) and (
34+ number >= 0
35+ ), "'number' must been an int and positive"
36+
3237 if 1 < number < 4 :
3338 # 2 and 3 are primes
3439 return True
@@ -42,35 +47,35 @@ def prime_check(number: int) -> bool:
4247
4348class Test (unittest .TestCase ):
4449 def test_primes (self ):
45- self .assertTrue (prime_check (2 ))
46- self .assertTrue (prime_check (3 ))
47- self .assertTrue (prime_check (5 ))
48- self .assertTrue (prime_check (7 ))
49- self .assertTrue (prime_check (11 ))
50- self .assertTrue (prime_check (13 ))
51- self .assertTrue (prime_check (17 ))
52- self .assertTrue (prime_check (19 ))
53- self .assertTrue (prime_check (23 ))
54- self .assertTrue (prime_check (29 ))
50+ self .assertTrue (is_prime (2 ))
51+ self .assertTrue (is_prime (3 ))
52+ self .assertTrue (is_prime (5 ))
53+ self .assertTrue (is_prime (7 ))
54+ self .assertTrue (is_prime (11 ))
55+ self .assertTrue (is_prime (13 ))
56+ self .assertTrue (is_prime (17 ))
57+ self .assertTrue (is_prime (19 ))
58+ self .assertTrue (is_prime (23 ))
59+ self .assertTrue (is_prime (29 ))
5560
5661 def test_not_primes (self ):
5762 self .assertFalse (
58- prime_check (- 19 ),
63+ is_prime (- 19 ),
5964 "Negative numbers are excluded by definition of prime numbers." ,
6065 )
6166 self .assertFalse (
62- prime_check (0 ),
67+ is_prime (0 ),
6368 "Zero doesn't have any positive factors, primes must have exactly two." ,
6469 )
6570 self .assertFalse (
66- prime_check (1 ),
71+ is_prime (1 ),
6772 "One only has 1 positive factor, primes must have exactly two." ,
6873 )
69- self .assertFalse (prime_check (2 * 2 ))
70- self .assertFalse (prime_check (2 * 3 ))
71- self .assertFalse (prime_check (3 * 3 ))
72- self .assertFalse (prime_check (3 * 5 ))
73- self .assertFalse (prime_check (3 * 5 * 7 ))
74+ self .assertFalse (is_prime (2 * 2 ))
75+ self .assertFalse (is_prime (2 * 3 ))
76+ self .assertFalse (is_prime (3 * 3 ))
77+ self .assertFalse (is_prime (3 * 5 ))
78+ self .assertFalse (is_prime (3 * 5 * 7 ))
7479
7580
7681if __name__ == "__main__" :
0 commit comments