use clojure.test.check for generative testing