We will focus on doctest. It is:
We will do the manual calculations to work out some examples:
fib(0) = 0 fib(10) = 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 fib(15) = 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610
#!/usr/bin/env python3 """ Fibonacci Module """ def fib(n): """ Calculates the n-th Fibonacci number """ a, b = 0, 1 for i in range(n): a, b = b, a+b return a if __name__ == "__main__": # if fib(0) == 0 and fib(10) == 55 and fib(50) == 12586269025: if fib(0) == 0 and fib(10) == 55 and fib(15) == 610: print("fib() test OK") else: print("fib() test failed")
[Download]
fib() test OK
bash-4.2$ python3 Python 3.3.2 (default, Dec 4 2014, 12:49:00) [GCC 4.8.3 20140911 (Red Hat 4.8.3-7)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from fib1 import fib >>> fib(0) 0 >>> fib(1) 1 >>> fib(10) 55 >>> fib(50) 12586269025 >>>
#!/usr/bin/env python3 """ Fibonacci Module """ def fib(n): """ Calculates the n-th Fibonacci number >>> fib(0) 0 >>> fib(1) 1 >>> fib(10) 55 >>> fib(50) 12586269025 >>> """ a, b = 0, 1 for i in range(n): a, b = b, a+b return a if __name__ == "__main__": import doctest doctest.testmod()
[Download]
Everything OK:
Error:
********************************************************************** File "./ex2.py", line 8, in __main__.fib Failed example: fib(0) Expected: 0 Got: 1 ********************************************************************** File "./ex2.py", line 12, in __main__.fib Failed example: fib(10) Expected: 55 Got: 89 ********************************************************************** File "./ex2.py", line 14, in __main__.fib Failed example: fib(50) Expected: 12586269025 Got: 20365011074 ********************************************************************** 1 items had failures: 3 of 4 in __main__.fib ***Test Failed*** 3 failures.