Here is a little algorithm for writing characterization tests: 1. Use a piece of code in a test harness. 2. Write an assertion that you know will fail. 3. Let the failure tell you what the behavior is. 4. Change the test so that it expects the behavior that the code produces. 5. Repeat.

