Unit Tests

Implemented unit tests project with several classes and functions that test the functionality of the library. These tests should be maintained as the library grows and need to be executed once before another branch is merged into the master branch to confirm that nothing obvious has been broken.