def get(self, fibonacci_length): """ Handle get request """ length = int(fibonacci_length) if length <= len(FibonacciHandler.cache_in_str): self.write(' '.join(FibonacciHandler.cache_in_str[:length])) else: result = fibonacci.fibonacci_non_recursive(length, base=FibonacciHandler.cache) self.write(' '.join(str(item) for item in result))
def test(host, port): """ Functional test trigger method """ print "Host: %s, Port: %d" % (host, port) http_client = httpclient.HTTPClient() # Normal cases print "Test normal cases..." # Case#1: Fibonacci request (length=0) test_case(host, port, 0, "") # Case#2: Fibonacci request (length=1) test_case(host, port, 1, "0") # Case#3: Fibonacci request (length=5) test_case(host, port, 5, "0 1 1 2 3") # Case#4: Fibonacci request (length=300) test_case(host, port, 300, " ".join(str(item) for item in fibonacci.fibonacci_non_recursive(300))) # Case#5: Fibonacci request (length=2000) test_case(host, port, 2000, " ".join(str(item) for item in fibonacci.fibonacci_non_recursive(2000)))
def get(self, fibonacci_length): """ Handle get request """ length = int(fibonacci_length) if length <= len(FibonacciHandler.cache_in_str): self.write(' '.join(FibonacciHandler.cache_in_str[:length])) else: result = fibonacci.fibonacci_non_recursive( length, base=FibonacciHandler.cache) self.write(' '.join(str(item) for item in result))
def initialize_cache(cls, cache_size): """ Initialize cache according to specified size """ print "Initialize cache (size: %d)..." % cache_size # The int list cache is for requested length is larger than cache, # so the furthr calculation can base on it cls.cache = fibonacci.fibonacci_non_recursive(cache_size) # The string list cache for the requested length is not larger than cache, # so the response can be constructed directly from it. # Maintain this list can avoid the int to string convertion for every request handling cls.cache_in_str = [str(item) for item in cls.cache]
def test(host, port): """ Functional test trigger method """ print "Host: %s, Port: %d" % (host, port) http_client = httpclient.HTTPClient() # Normal cases print "Test normal cases..." # Case#1: Fibonacci request (length=0) test_case(host, port, 0, "") # Case#2: Fibonacci request (length=1) test_case(host, port, 1, "0") # Case#3: Fibonacci request (length=5) test_case(host, port, 5, "0 1 1 2 3") # Case#4: Fibonacci request (length=300) test_case( host, port, 300, " ".join(str(item) for item in fibonacci.fibonacci_non_recursive(300))) # Case#5: Fibonacci request (length=2000) test_case( host, port, 2000, " ".join( str(item) for item in fibonacci.fibonacci_non_recursive(2000)))
def test_fibonacci_no_recursive(self): # Test valid length input and verify result self.assertEqual(fibonacci.fibonacci_non_recursive(0), []) self.assertEqual(fibonacci.fibonacci_non_recursive(1), [0]) self.assertEqual(fibonacci.fibonacci_non_recursive(2), [0, 1]) self.assertEqual(fibonacci.fibonacci_non_recursive(5), [0, 1, 1, 2, 3]) self.assertEqual(fibonacci.fibonacci_non_recursive(10), [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]) # Test a long length input and verify the results between # fibonacci.ibonacci_non_recursive(length) and fibonacci.fibonacci(length) self.assertEqual(fibonacci.fibonacci_non_recursive(150), fibonacci.fibonacci(150)) # Test the result when base sequence input is specified self.assertEqual(fibonacci.fibonacci_non_recursive(10), fibonacci.fibonacci_non_recursive(10, [0, 1, 1, 2, 3])) self.assertEqual( fibonacci.fibonacci_non_recursive(200), fibonacci.fibonacci_non_recursive(200, fibonacci.fibonacci_non_recursive(100)), ) # Test negative length input and expect exception self.assertRaises(Exception, fibonacci.fibonacci_non_recursive, -2)
def test_fibonacci_no_recursive(self): # Test valid length input and verify result self.assertEqual(fibonacci.fibonacci_non_recursive(0), []) self.assertEqual(fibonacci.fibonacci_non_recursive(1), [0]) self.assertEqual(fibonacci.fibonacci_non_recursive(2), [0,1]) self.assertEqual(fibonacci.fibonacci_non_recursive(5), [0,1,1,2,3]) self.assertEqual(fibonacci.fibonacci_non_recursive(10), [0,1,1,2,3,5,8,13,21,34]) # Test a long length input and verify the results between # fibonacci.ibonacci_non_recursive(length) and fibonacci.fibonacci(length) self.assertEqual(fibonacci.fibonacci_non_recursive(150), fibonacci.fibonacci(150)) # Test the result when base sequence input is specified self.assertEqual(fibonacci.fibonacci_non_recursive(10), fibonacci.fibonacci_non_recursive(10, [0,1,1,2,3])) self.assertEqual(fibonacci.fibonacci_non_recursive(200), fibonacci.fibonacci_non_recursive(200, fibonacci.fibonacci_non_recursive(100))) # Test negative length input and expect exception self.assertRaises(Exception, fibonacci.fibonacci_non_recursive, -2)