2011-11-14 12 views
25

Bien, como aprendí a través de mi previous question, 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 simple que es utilizar QuickCheck, no puedo encontrar ningún lugar que me diga cómo cambiar el número de pruebas para ejecutar una propiedad.¿Cómo obtener Haskell QuickCheck 2.4 para aumentar # pruebas?

captación de aguas pluviales 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 descubierto a mí mismo? Por favor, no me digas que debería haber sido capaz de resolverlo en la documentación de la API.

+8

captación de aguas pluviales salieron a la vez perfectamente equivocado. Por ejemplo: el control de calidad cambió, las excepciones cambiaron, los encuestadores se hicieron populares, etc. –

Respuesta

46

Usted ha buscado:

quickCheckWith stdArgs { maxSuccess = 5000 } someProp 

como descubrí

  1. fui a la API documentation.
  2. Lo segundo 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 - encontrando stdArgs. (Use la función de búsqueda de su navegador - ctrl-f generalmente). OTOH, podría haber usado hoogle.
  4. Necesitaba usar mi tipo Args en alguna parte, así que seguí buscando. La siguiente línea fue quickCheckWith - ¡bingo! Por otro lado, podría haber usado hoogle.

¿Cómo puede usted averiguar

Como he dicho anteriormente, se podría haber utilizado Hoogle encontrar una gran cantidad de las funciones, asumiendo que se da cuenta del tipo Args es el núcleo de lo que necesita (de los abadejos).

De lo contrario, probablemente se vea obligado a ver qué hacen otros paquetes, lo que significa que necesita saber qué otros paquetes vale la pena mirar. La carpeta examples en QuickCheck parece obvia, pero no todos los paquetes incluyen tales ejemplos. Usando reverse dependencies a menudo puede encontrar un paquete para mirar, pero para QC, muchos paquetes no tienen dependencias explícitas.

+6

Hola Thomas. Puedo apreciar que pudiste averiguarlo a través de la API. Pero aún no me he iniciado en este paquete, y no puedo sacar ni una cara de la mayoría. Perdido en arbitrario. Camino perdido en CoArbitrary. Gen? Ni idea de qué es eso tampoco. La documentación dice "generador aleatorio". Espero entiendas lo que quiero decir. Pero gracias por proporcionar una respuesta rápida. – Ana

+4

@Ana Comprensible que te pierdas en Arbitrario, CoArbitrario y otras cosas. El truco es, no te intimides demasiado por esas cosas. La mayoría de las API tienen una parte fácil que te ayuda a comenzar, así que trata de ignorar las cosas complicadas y encuentra primero la parte fácil. En este caso, quiere _comprobar su código, de modo que busque las funciones que contengan 'verificar' en su nombre (sin distinción entre mayúsculas y minúsculas debido a camelCase), y vea lo que parece útil. –

2

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

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

gracias por esta respuesta: la verificación rápida es complicada o no se encuentra documentada. Hice todos los hallazgos descritos anteriormente e hice stdArgs {maxSize = 500} que redujo el número de muestras; Hice mal la documentación. – user855443

Cuestiones relacionadas