Finished writing basic unit tests for each alg.

The main purpose of the tests is to help make sure we aren't breaking
things when we make a change. And demonstrate the differences between the algs.
by example.