The learning objectives of this assignment are to understand how JUnit works and how to read and write basic tests before we start working on our own data structures.
Due Date: March 5, 2020.
Remember that we will have a midterm that weekend, so don't save it until the last minute!
You must fill out a Google Form to indicate the parts of the assignment that you have attempted.
In addition, you will write 10 statements of either:
- Accomplishments: things that you understand much better now.
- Challenges: things that you are still working on understanding.
I will provide direct feedback to your writing.
This includes that your code should be professional.
- Try to proofread your work like an essay!
- Find all your
println("stuff")
statements and remove them, etc. - Your code looks intentional: don't just fiddle with it until it works. Reason about it! Sketch out the python by hand and then try translating to Java.
- Delete commented out code or experiments that don't work out. Make your submission as small as it needs to be.
- Your code is your own. Respect the honor code.
- Working with others or helping them debug is acceptable - use your best judgment! Make sure that you know what you're working on.
- Have comments explaining tricky code!
There are some intentional bugs in the MapADT implementing code and (likely) some accidental bugs. See if you can catch them.
- size
- insert
- contains
- remove
- put
- get
- size
- remove
Make use of the structure I created for you in makeFullList
. The following methods need tests:
- setIndex
- addIndex
- addBack
- removeBack
- removeIndex
- removeFront
Try to understand what's going on with the new errors: BadIndexError
, and EmptyListError
in particular.
One of these methods has a bug; i.e., something I put in to make it behave badly. Make sure you have a test for that case!
It is impossible to fully prove these some of these methods work for every collection. Consider how to find a balance between proving it works to yourself and making a lot of tedious code.
Writing code and tests for these methods (see Challenge.java
) is worth 12 points, and 12 if you have tests (beyond the simple one I gave).
- intersection (4 + 4)
- union (4 + 4)
- wordCount (4 + 4)
class SetFromMap<T> extends SetADT<T>
class SetFromList<T> extends SetADT<T>
class MapFromList<K,V> extends MapADT<K,V>
class ListFromMap<T> extends ListADT<T>