Re: testing clojure.core/group-by with clojure.test.check

2014-05-01 Thread henry w
thanks Alex and others for helping out. Some very interesting ideas here but the one about leveraging the grouping function seemed easy and reading that was an epiphany moment where i realised i had been subconsciously constrained by thinking I should generate data and use a grouping fn that

testing clojure.core/group-by with clojure.test.check

2014-04-30 Thread henry w
Hi, I wanted to get started with clojure.test.check (formerly simple-check) and I am new to property based testing. I plucked clojure.core/group-by for no particular reason as a function to test. I started by stating some properties i think should hold: ;; 1. applying the grouping key

Re: testing clojure.core/group-by with clojure.test.check

2014-04-30 Thread Alex Miller
The only hard parts about property based testing are the properties and the generators. ;) On Wednesday, April 30, 2014 6:38:19 AM UTC-5, henry w wrote: Hi, I wanted to get started with clojure.test.check (formerly simple-check) and I am new to property based testing. I plucked

Re: testing clojure.core/group-by with clojure.test.check

2014-04-30 Thread Tim Visher
As an aside to the discussion at hand, what papers/books/online articles are good to read to learn about how to come up with good properties and generators? On Wed, Apr 30, 2014 at 3:36 PM, Alex Miller a...@puredanger.com wrote: The only hard parts about property based testing are the properties

Re: testing clojure.core/group-by with clojure.test.check

2014-04-30 Thread Alex Miller
Some good links here: https://github.com/clojure/test.check But related communities like QuickCheck, ScalaCheck, etc are probably good places to look. Someone should start making something great for test.check on the wiki: https://github.com/clojure/test.check Hint hint hint! On Wednesday,

Re: testing clojure.core/group-by with clojure.test.check

2014-04-30 Thread Andrew Chambers
One approach you can use is write the generators in such a way that they generate the final answer group-by should return, then you write code which does the inverse to group by and then you check the group by answer is equal to the originally generated solution. On Wednesday, April 30, 2014