开发者

verboseCheck in QuickCheck 2?

开发者 https://www.devze.com 2022-12-24 07:58 出处:网络
The function verboseCheck from QuickCheck 1 seems to be absent in QuickCheck 2 (or at least, I can\'t find it). Is there any other 开发者_C百科way to show which values are used during testing?The samp

The function verboseCheck from QuickCheck 1 seems to be absent in QuickCheck 2 (or at least, I can't find it). Is there any other 开发者_C百科way to show which values are used during testing?


The sample function is also useful:

Prelude Test.QuickCheck
ghci> sample (arbitrary :: Gen String)
""
")\223"
"(\227\&5F"
"\DC1"
"\136'\140\180\FS"
"K\DC2\NUL\CAN\253Q"
"\DC4\f\184&.\DC3\159\&1I\160j\147"
....

This way, it's easy to play with your Arbitrary instances, and make sure they generate what you think they generate.


Yes, this seems to be a functionality regression with respect to QuickCheck 1.

You can work around it by annotating your properties with a Debug.Trace.trace statement, however. Something like:

import Debug.Trace

prop_eq xs = traceShow xs $ 
   xs == reverse (reverse xs)


I've been happy with

import Debug.Trace
verboseCheck prop = quickCheck (\input -> traceShow input $ prop input)


Looks like verbose (and other verbose- functions) were returned back to QuickCheck in version 2.4


I took a look at sources, and it seems that Args were refactored, configEvery is no longer there, and thus you are not able to print all test values without patching QuichCheck sources

0

精彩评论

暂无评论...
验证码 换一张
取 消