def get(self, request, *args, **kwargs): params = GetPrimeNumbersParamsForm(data=request.GET) if params.is_valid(): results = get_primes(params.cleaned_data["n"], start=params.cleaned_data["start"], page=params.cleaned_data["page"], page_size=params.cleaned_data["page_size"]) return HttpResponse(json.dumps(results)) return HttpResponse(json.dumps({"errors": params.errors}))
def test_sequential(self): self.assertGreater(get_primes(500000)["count"], 0) self.assertGreater(get_primes(10000000)["count"], 0) self.assertGreater(get_primes(400000)["count"], 0) self.assertGreater(get_primes(300000)["count"], 0)
def test_concurrent_02(self): self.assertEqual(78498, get_primes(1000000, locking="always")["count"])
def test_concurrent_optional(self, n): self.assertGreater(get_primes(n, locking="optional")["count"], 0)
def test_get_primes_01(self): self.assertEqual([2, 3], get_primes(4)["numbers"])
def test_get_primes_l03(self): self.assertEqual(78504, get_primes(1000100)["count"]) # 148 ms -- utilizes results built from earlier test
def test_get_primes_l02_section(self): self.assertEqual([467, 479, 487, 491, 499, 503, 509, 521, 523, 541], get_primes(1000000, page=10, page_size=10)["numbers"]) # repetitive call - 149 ms
def test_get_primes_03(self): self.assertEqual([11, 13, 17, 19, 23, 29, 31, 37, ], get_primes(40, start=10)["numbers"])
def test_get_primes_l02(self): self.assertEqual(78498, get_primes(1000000)["count"]) # 570 ms
def test_get_primes_l01(self): self.assertEqual(168, get_primes(1000)["count"])
def test_get_primes_10(self): self.assertEqual([31, 37, 41, 43, 47, 53, 59, 61, 67, 71], get_primes(100, page=2, page_size=10)["numbers"])
def test_get_primes_09(self): self.assertEqual([2, 3, 5, 7, 11, 13, 17, 19, 23, 29], get_primes(100, page_size=10)["numbers"])
def test_get_primes_08(self): self.assertEqual([], get_primes(10, start=20)["numbers"])
def test_get_primes_06(self): self.assertEqual([], get_primes(-1)["numbers"])
def test_concurrent_always(self, n): self.assertGreater(get_primes(n, locking="always")["count"], 0)
def test_get_primes_l02_repeat(self): self.assertEqual(78498, get_primes(1000000)["count"]) # repeated call 147 ms
def test_get_primes_02(self): self.assertEqual([2, 3, 5, 7, 11, 13, 17, 19, 23, 29], get_primes(30)["numbers"])