Attempted translation of the QuickCheck properties in this paper:
"How to specify it!" - John Hughes
https://www.dropbox.com/s/tx2b84kae4bw1p4/paper.pdf?dl=0
Into Clojure test.check properties. I recreated the first 5 bugs in the paper
(and the test.check properties do fail on them) but got bored after that as they
assumed an implementation of union that isn't as silly as mine.
Run the properties by redefining the vars at the top of bst-spec to
point to the implementation of your choice and running check-props. There's also a BST that passes all the tests
in bst. It's stupidly slow.
Would love some help in how to make the bst-spec namespace
- have less boilerplate
- be more idiomatic.
- I couldn't figure out how to make properties that test shrinking as in the paper