[plt-dev] random testing, we need to do more of this
This makes perfect sense.
Over winter break, I've been thinking about how to introduce more
precise invariant reasoning in my intro course, since we *talk* about
many of these properties (particularly essential is associativity in
the context of MapReduce). QuickCheck was the missing link for me.
Note that heaps are often more interesting than trees in that
insertion and then removal of an element does not necessarily yield
the (structurally) same heap as went in: basically, the heap invariant
is weaker, so it allows more latitude in implementation and therefore
requires a more detailed equality checker (ie, relations rather than
functions).
I had already mapped out an assignment *solely* on testing-harness
creation. So introducing QuickCheck just after that would be just
perfect: the harness is already built in AND it's generic!
Shriram