This homework will be worth a total of 60 points.

There will be an autograder, with no manual-grading part for this homework. You are encouraged to resubmit until you earn a perfect score before the due date.

Note

Warning

You should not use this autograder as your primary test mechanism, but it will provide some immediate feedback.

Your tests file should contain a variety of unit tests which you write by hand to cover edge-cases, simple data, and extremes, as you see fit. Since these are primarily “unit” tests, each test should be as small as possible: it should test one thing, and one thing only. This might mean you have to create a T9 instance, perform an operation or two on it, and then free it; however, try not to lump all cases into one. You should explicitly call and test every T9 function at least three times (except DestroyT9()).

You will need to rename one of our provided test cases to accurately describe what it does. You are also free to modify or remove this test case, but will likely have to replace it with a new one.

When submitting to the autograder, it may be tempting to delete or replace test cases. We recommend you keep them instead! Having too many tests is rarely a problem, as long as they all are correct (i.e., pass on a correct implementation).

Our own reference test suite contains around 30 tests; yours may contain more or fewer, but will likely be at least ten.

Note

You don’t have to cover all the cases to get full points.