This entire assignment is test-based. That means that after you finish each part of this assignment, you can (and should) test it with a JUnit test case. These tests can be found in the hw5.test subpackages. You should not modify any of the test files, but feel free to take a look at them and try to understand what they're doing. Note that passing a test does not guarantee that your code is bug-free; the tests are there as a guide.
Here are the parts of this assignment that you need to complete in the order that you should complete and test them: