CS/SWE 332 Assignment 3
Due Wednesday, September 20, 2017

Goal: JUnit Theories.

Write JUnit theories for either of Liskov's examples (IntSet or Poly). If you wish to replace Liskov's IntSet with the standard Java Set interface, that's fine too. The deliverable for this assignment is a story. Specifically:

  1. Develop at least three theories about your chosen datatype. Motivate each theory with a sentence or two of justification. Argue that your theories are valid. This means convincing us that the theory not only works for your chose datapoints, but works for all possible parameters that satisfy the type constraints of your theory. One obvious thing you should do here is consider null values.
  2. Show the GTA that your Java/JUnit code actually runs. You can do this with screenshots or other evidence. In other words, it should be obvious that your code "works" by reading your story. If the GTA is can't tell , she will compile/run your code, but you also won't earn full credit.
  3. Count the number of tests that each theory generates. The answer, of course, will depend on how you populate the datapoints portion of the theory. I highly recommend implementing the counting (as opposed to treating as a paper-pencil exercise). In your story you should explain why you think your counts are correct.