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.