Time for action – writing a unit test
We will write tests for a simple factorial function. The tests will check for the so called happy path and for abnormal conditions.
We start by writing the factorial function
def factorial(n): if n == 0: return 1 if n < 0: raise ValueError, "Unexpected negative value" return np.arange(1, n+1).cumprod()
The code is using the
arange
andcumprod
functions we have already seen to create arrays and calculate the cumulative product, but we added a few checks for boundary conditions.Now we will write the unit test. Let's write a class that will contain the unit tests. It extends the
TestCase
class from theunittest
module which is part of standard Python. We test for calling the factorial function with:a positive number, the happy path
boundary condition 0
negative numbers, which should result in an error
class FactorialTest(unittest.TestCase): def test_factorial(self): #Test for the factorial of 3 that should pass. self.assertEqual(6...