Writing high-quality software
How do we know these various statistical functions work? This is potentially very tricky programming, with lots of opportunities to have things go wrong.
The best tool to make sure that software works is unit testing. The idea behind unit testing is to break a module down into separate units—usually functions or classes—and test each unit in isolation. Python gives us two ways to perform unit testing:
Putting examples into docstrings for modules, functions, and classes
Writing separate
unittest.TestCase
classes
Most secret agents will be very happy with docstring test cases. They're easy to write. We put them in the docstring right in front of the rest of the code. They're visible when we use the help()
function.
We create these docstring test cases by copying and pasting known correct results from interactive Python. The copy and paste will include the >>>
prompt to make it easy to find the examples. Of course, we also include the output that's expected...