Assignment 3 main file using asserts.

@isupeene I used asserts to demonstrate the return values. After the midterm I am going to try this code and such on the lab computers and maybe add the gem line that the TA complained was missing if I am getting errors with the tests on the lab computers.

Also I forgot but we should also do the TODO for binary search and the TODO for DRY even if it is just deleting the non-module contract decorator code.
For readability, I think I prefer assertion comments like "Sort should succeed", and "Sort should properly sort the array".  It's a little less informative when it fails, but it makes a whole lot more sense when you actually read through the code.