
PS: Just to make clear, it's not that I have something against QuickCheck
or similar libraries, on the contrary, they're great! I'm just playing the
devil's advocate to analyze and understand the concept.
ne 17. 6. 2018 v 4:05 odesílatel Oleg Grenrus
Not only avoid extremely large trees, but in general guarantee termination of the generation process
Sent from my iPhone
On 15 Jun 2018, at 0.31, David Feuer
wrote: data Foo a = Leaf a | Node [Foo a]
Without the size parameter, it's a bit tricky to control the distribution to avoid generating extremely large trees. I certainly agree, however, that the size parameter is an ugly and ill-specified hack.
On Thu, Jun 14, 2018, 4:20 PM Petr Pudlák
wrote: Hi everyone,
I'd like to better understand the principles behind the 'size' parameter. Looking at quickCheckWithResult [1], its computation seems to be somewhat non-trivial, or even arbitrary. As far as I understand it, the size is varied throughout tests, increasing from small to larger values. I see two main purposes:
- Test on smaller as well as larger values. But with generators having proper distribution of values, this should happen anyway, just as if we had a constant, larger 'size' parameter. - Starting with smaller sizes allows to find smaller count-examples first. But with shrinking, it doesn't matter that much, big counter-examples are shrunk to smaller ones anyway in most cases.
So is this parameter actually necessary? Would anything change considerably if it was dropped?
Thanks, Petr
[1] http://hackage.haskell.org/package/QuickCheck-2.11.3/docs/src/Test-QuickChec... _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.