Finished the homework

I'm kind of liking the test driven development thingy. It makes the code easier to think about in small steps and helps you to think about all the cases where it could fail. Sort of prevents you from being sloppy. It does take a little longer though. Most of the time it seems like the test suites are twice as big as the code that they're testing.