Added boundary conditions to test cases. Implemented better error
handling.
Added more test cases. Algorithm should be done and is running
correctly.
Fixed directory structure of the Java program to adhear to
conventions.