verboseCheck dans QuickCheck 2?
-
22-09-2019 - |
Question
La verboseCheck
fonction de QuickCheck 1 semble être absent dans QuickCheck 2 (ou du moins, je ne peux pas le trouver). Est-il une autre façon de montrer que les valeurs sont utilisées lors des essais?
La solution
On dirait verbose
(et d'autres fonctions verbose
-) ont été retournés à QuickCheck dans la version 2.4
Autres conseils
La fonction sample
est également utile:
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"
....
De cette façon, il est facile de jouer avec vos instances arbitraires, et assurez-vous qu'ils génèrent ce que vous pensez qu'ils génèrent.
Oui, cela semble être une régression de fonctionnalité par rapport à QuickCheck 1.
Vous pouvez travailler autour d'elle en annotant vos propriétés avec une instruction Debug.Trace.trace, cependant. Quelque chose comme:
import Debug.Trace
prop_eq xs = traceShow xs $
xs == reverse (reverse xs)
Je suis heureux avec
import Debug.Trace
verboseCheck prop = quickCheck (\input -> traceShow input $ prop input)
J'ai regardé les sources, et il semble que Args
ont été remaniée avec, configEvery
est plus là, et donc vous n'êtes pas en mesure d'imprimer toutes les valeurs de test sans patcher les sources QuichCheck