haskell quickcheck

¿Cómo obtener Haskell QuickCheck 2.4 para aumentar las#pruebas?



(2)

Bien, como aprendí a través de mi pregunta anterior , el libro de RWH ya está desactualizado para QuickCheck. Y a pesar de todas las publicaciones que he leído que me dicen lo increíblemente sencillo que es utilizar QuickCheck, no puedo encontrar ningún lugar que me indique cómo cambiar la cantidad de pruebas que se ejecutan para una propiedad.

RWH dice:

handyCheck limit = check defaultConfig { configMaxTest = limit , configEvery = /_ _ -> "" }

¿Cómo hacer esto con QuickCheck 2.4? Más importante aún, ¿cómo me habría enterado? Por favor, no me digas que debería haber podido averiguarlo a partir de la documentación de la API.


Estás buscando:

quickCheckWith stdArgs { maxSuccess = 5000 } someProp

Como me enteré

  1. Fui a la documentación de la API .
  2. La segunda cosa que vi, después de quickCheck fue el tipo Args con un campo maxSuccess .
  3. No quería escribir todos los campos, así que busqué un valor de tipo Args : buscar stdArgs . (Use la función de búsqueda de su navegador - usualmente ctrl-f). OTOH, podría haber utilizado hoogle .
  4. Necesitaba usar mi tipo Args algún lugar, así que seguí buscando. La siguiente línea fue quickCheckWith - bingo! Por otro lado, podría haber usado hoogle .

¿Qué más se puede averiguar?

Como mencioné anteriormente, podría haber usado Hoogle para encontrar muchas de las funciones, suponiendo que se dé cuenta de que el tipo Args es el núcleo de lo que necesita (de los abadejos).

De lo contrario, probablemente se vea reducido a lo que hacen los otros paquetes, lo que significa que necesita saber qué otros paquetes merecen la pena mirar. La carpeta de examples en QuickCheck parece obvia, pero no todos los paquetes incluyen tales ejemplos. Al usar dependencias inversas, a menudo puede encontrar un paquete para ver, pero para el control de calidad, muchos de los paquetes no tienen dependencias explícitas.


Para aquellos que desean ejecutar todas las pruebas a la vez y proporcionar su configuración:

return [] main = $forAllProperties (quickCheckWithResult stdArgs { maxSuccess = 500 })