def test_format(self): sieve = PrimeSieve(10) sieve.run_sieve() output = self.get_print_results_output(sieve, False, 100, 1000) lines = output.split("\n") self.assertEqual(len(lines), 4) parsed_keys = self.parse_results(output).keys() self.assertEqual(len(parsed_keys), 6)
def test_show_results(self): sieve = PrimeSieve(10) sieve.run_sieve() output = self.get_print_results_output(sieve, True, 1, 1) primes = output.split("\n")[0].strip().split(",") if primes[-1] == "": # There may be a trailing comma primes.pop() primes = list(map(str.strip, primes)) self.assertEqual(primes, ["2","3","5","7"])
def test_avg(self): sieve = PrimeSieve(10) sieve.run_sieve() output = self.get_print_results_output(sieve, False, 100, 1000) results = self.parse_results(output) self.assertIn("Avg", results) self.assertEqual(float(results["Avg"]), 0.1) output = self.get_print_results_output(sieve, False, 100, 25) results = self.parse_results(output) self.assertIn("Avg", results) self.assertEqual(float(results["Avg"]), 4)
def test_time(self): sieve = PrimeSieve(10) sieve.run_sieve() output = self.get_print_results_output(sieve, False, 100, 1000) results = self.parse_results(output) self.assertIn("Time", results) self.assertEqual(results["Time"], "100") output = self.get_print_results_output(sieve, False, 42, 1000) results = self.parse_results(output) self.assertIn("Time", results) self.assertEqual(results["Time"], "42")
def test_passes(self): sieve = PrimeSieve(10) sieve.run_sieve() output = self.get_print_results_output(sieve, False, 100, 1000) results = self.parse_results(output) self.assertIn("Passes", results) self.assertEqual(results["Passes"], "1000") output = self.get_print_results_output(sieve, False, 100, 123) results = self.parse_results(output) self.assertIn("Passes", results) self.assertEqual(results["Passes"], "123")
def test_valid(self): sieve = PrimeSieve(10) sieve.run_sieve() sieve.validate_results = lambda: True output = self.get_print_results_output(sieve, False, 1, 1) results = self.parse_results(output) self.assertIn("Valid", results) self.assertEqual(results["Valid"], "True") sieve.validate_results = lambda: False output = self.get_print_results_output(sieve, False, 1, 1) results = self.parse_results(output) self.assertIn("Valid", results) self.assertEqual(results["Valid"], "False")
def test_count(self): sieve = PrimeSieve(10) sieve.run_sieve() sieve.get_primes = lambda: (i for i in range(3)) output = self.get_print_results_output(sieve, False, 1, 1) results = self.parse_results(output) self.assertIn("Count", results) self.assertEqual(results["Count"], "3") sieve.get_primes = lambda: (i for i in range(10)) output = self.get_print_results_output(sieve, False, 1, 1) results = self.parse_results(output) self.assertIn("Count", results) self.assertEqual(results["Count"], "10")
def test_limit(self): sieve = PrimeSieve(10) sieve.run_sieve() output = self.get_print_results_output(sieve, False, 1, 1) results = self.parse_results(output) self.assertIn("Limit", results) self.assertEqual(results["Limit"], "10") sieve = PrimeSieve(13) sieve.run_sieve() output = self.get_print_results_output(sieve, False, 1, 1) results = self.parse_results(output) self.assertIn("Limit", results) self.assertEqual(results["Limit"], "13")
def test_prime_limit(self): sieve = PrimeSieve(11) sieve.run_sieve() primes = list(sieve.get_primes()) self.assertEqual(primes, [2,3,5,7,11])
def test_limit_2(self): sieve = PrimeSieve(2) sieve.run_sieve() primes = list(sieve.get_primes()) self.assertEqual(primes, [2])
def test_limit_0(self): sieve = PrimeSieve(0) sieve.run_sieve() self.assertEqual(sieve.count_primes(), 0)
def test_limit_with_odd_sqr(self): sieve = PrimeSieve(25) sieve.run_sieve() self.assertEqual(sieve.count_primes(), 9)
def test_prime_limit(self): sieve = PrimeSieve(11) sieve.run_sieve() self.assertEqual(sieve.count_primes(), 5)
def test_limit_1000(self): sieve = PrimeSieve(1000) sieve.run_sieve() primes_len = self.count(sieve.get_primes()) self.assertEqual(primes_len, 168)
def test_limit_10(self): sieve = PrimeSieve(10) sieve.run_sieve() primes = list(sieve.get_primes()) self.assertEqual(primes, [2,3,5,7])
def test_limit_with_odd_sqr(self): sieve = PrimeSieve(25) sieve.run_sieve() primes = list(sieve.get_primes()) self.assertEqual(primes, [2,3,5,7,11,13,17,19,23])