forked from MIT-Emerging-Talent/ET6-practice-code-review
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
55a4f30
commit d568bfb
Showing
1 changed file
with
88 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
""" | ||
A module for testing the functions is_prime and find_primes_up_to_n. | ||
Tests included: | ||
- is_prime: tested the cases when the input is a prime number, a non-prime number, | ||
input is zero, input is one, input is a negative integer, and when the input is a string. | ||
- find_primes_up_to_n: tested the cases when the input is a positive integer, | ||
input is zero, and when the input is a string. | ||
Created on 10 01 2025 | ||
@author: Zeinab Shadabshoar | ||
""" | ||
|
||
import unittest | ||
|
||
from ..find_prime_numbers import find_primes_up_to_n, is_prime | ||
|
||
|
||
class TestPrimeFunctions(unittest.TestCase): | ||
""" | ||
Tests both functions in prime_checker, is_prime and find_primes_up_to_n. | ||
""" | ||
|
||
def test_is_prime_prime(self): | ||
""" | ||
It should return True if the input is a prime number | ||
""" | ||
actual = is_prime(7) | ||
expected = True | ||
self.assertEqual(actual, expected) | ||
|
||
def test_is_prime_non_prime(self): | ||
""" | ||
It should return False if the input is a non-prime number | ||
""" | ||
actual = is_prime(4) | ||
expected = False | ||
self.assertEqual(actual, expected) | ||
|
||
def test_is_prime_zero(self): | ||
""" | ||
It should return False if the input is zero | ||
""" | ||
actual = is_prime(0) | ||
expected = False | ||
self.assertEqual(actual, expected) | ||
|
||
def test_is_prime_one(self): | ||
""" | ||
It should return False if the input is one | ||
""" | ||
actual = is_prime(1) | ||
expected = False | ||
self.assertEqual(actual, expected) | ||
|
||
def test_is_prime_string(self): | ||
""" | ||
It should raise an assertion error if the input is a non-integer | ||
""" | ||
with self.assertRaises(AssertionError): | ||
is_prime(self) | ||
|
||
def test_find_primes_up_to_n_positive(self): | ||
""" | ||
It should return a list of prime numbers up to the given positive integer | ||
""" | ||
actual = find_primes_up_to_n(20) | ||
expected = [2, 3, 5, 7, 11, 13, 17, 19] | ||
self.assertEqual(actual, expected) | ||
|
||
def test_find_primes_up_to_n_zero(self): | ||
""" | ||
It should return an empty list if the input is zero | ||
""" | ||
actual = find_primes_up_to_n(0) | ||
expected = [] | ||
self.assertEqual(actual, expected) | ||
|
||
def test_find_primes_up_to_n_string(self): | ||
""" | ||
It should raise an assertion error if the input is a non-integer | ||
""" | ||
with self.assertRaises(AssertionError): | ||
find_primes_up_to_n("Twenty") | ||
|
||
|
||
if __name__ == "__main__": | ||
unittest.main() |