Using unittest package
The standard unittest
Python package greatly facilitates automated testing. This package requires that we rewrite our tests to be compatible. The first test would have to be rewritten in a class
, as follows:
from bisection import bisect import unittest class TestIdentity(unittest.TestCase): def test(self): result = bisect(lambda x: x, -1.2, 1.,tol=1.e-8) expected = 0. self.assertAlmostEqual(result, expected) if __name__=='__main__': unittest.main()
Let's examine the differences to the previous implementation. First, the test is now a method and a part of a class. The class must inherit from unittest.TestCase
. The test method's name must start with test
. Note that we may now use one of the assertion tools of the unittest
package, namely assertAlmostEqual
. Finally, the tests are run using unittest.main
. We recommend to write the tests in a file separate from the code to be tested. That is why it starts with...