Exception Classes and Tests

I made all of the unit tests to fail and then pass, so hopefully these
are correct! If you see anything that is wrong with them feel free to
edit them if you want to.