verboseCheck en QuickCheck 2?
-
22-09-2019 - |
Pregunta
La función de verboseCheck
QuickCheck 1 parece estar ausente en QuickCheck 2 (o al menos, yo no lo encuentro). ¿Hay alguna otra manera de mostrar los valores que se utiliza durante la prueba?
Solución
se parece verbose
(y otras funciones verbose
-) fueron devueltos de nuevo a QuickCheck en la versión 2.4
Otros consejos
La función sample
también es útil:
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 esta manera, es fácil de jugar con las instancias arbitrarias, y asegurarse de que generan lo que usted piensa que generan.
Sí, esto parece ser una regresión funcionalidad con respecto a QuickCheck 1.
Puede trabajar alrededor de ella mediante anotaciones en las propiedades con una declaración Debug.Trace.trace, sin embargo. Algo así como:
import Debug.Trace
prop_eq xs = traceShow xs $
xs == reverse (reverse xs)
He sido feliz con
import Debug.Trace
verboseCheck prop = quickCheck (\input -> traceShow input $ prop input)
Me tomó un vistazo a las fuentes, y parece que se Args
refactorizado, configEvery
ya no está allí, y por lo tanto no son capaces de imprimir todos los valores de la prueba sin parchear las fuentes QuichCheck