import unittest try: from .lib_prime import prime_factors from .lib_prime import prime_factors_count from .lib_prime import is_prime from .lib_prime import prime_nth from .lib_prime import primes from .lib_prime import get_divisors_count except ModuleNotFoundError: from lib_prime import prime_factors from lib_prime import prime_factors_count from lib_prime import is_prime from lib_prime import prime_nth from lib_prime import primes from lib_prime import get_divisors_count class TestPrimeMethods(unittest.TestCase): def test_prime_factors(self): self.assertEqual(prime_factors(2), [2]) self.assertEqual(prime_factors(5), [5]) self.assertEqual(prime_factors(10), [2, 5]) self.assertEqual(prime_factors(13), [13]) self.assertEqual(prime_factors(147), [3, 7, 7]) def test_prime_factors_count(self): self.assertEqual(prime_factors_count(1), {}) self.assertEqual(prime_factors_count(2), {2: 1}) self.assertEqual(prime_factors_count(147), {3: 1, 7: 2}) def test_is_prime(self): self.assertTrue(is_prime(2)) self.assertTrue(is_prime(3)) self.assertTrue(is_prime(5)) self.assertTrue(is_prime(7)) self.assertTrue(is_prime(11)) self.assertTrue(is_prime(13)) self.assertTrue(is_prime(101)) self.assertFalse(is_prime(0)) self.assertFalse(is_prime(1)) self.assertFalse(is_prime(4)) self.assertFalse(is_prime(6)) self.assertFalse(is_prime(8)) self.assertFalse(is_prime(9)) self.assertFalse(is_prime(10)) self.assertFalse(is_prime(12)) self.assertFalse(is_prime(323)) def test_get_nth_prime(self): self.assertEqual(prime_nth(1), 2) self.assertEqual(prime_nth(2), 3) self.assertEqual(prime_nth(3), 5) self.assertEqual(prime_nth(4), 7) self.assertEqual(prime_nth(5), 11) self.assertEqual(prime_nth(6), 13) def test_primes(self): self.assertEqual(primes(19), [2, 3, 5, 7, 11, 13, 17, 19]) self.assertEqual(primes(20), [2, 3, 5, 7, 11, 13, 17, 19]) self.assertEqual(primes(25), [2, 3, 5, 7, 11, 13, 17, 19, 23]) self.assertEqual(primes(1), []) def test_get_divisors_count(self): self.assertEqual(get_divisors_count(1), 1) self.assertEqual(get_divisors_count(3), 2) self.assertEqual(get_divisors_count(6), 4) self.assertEqual(get_divisors_count(10), 4) self.assertEqual(get_divisors_count(15), 4) self.assertEqual(get_divisors_count(21), 4) self.assertEqual(get_divisors_count(28), 6) if __name__ == '__main__': unittest.main()