es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Qué describe el campo maxSize en Args de Test.QuickCheck?

Estoy revisando maxSize en Args. Su descripción dice: “Tamaño a utilizar para los casos de prueba más grandes”. Pero, ¿cómo se determina el tamaño de los casos de prueba? Prefiero preguntar en lugar de revisar el código fuente:

myArgs :: Args
myArgs = Args{replay=Nothing
             ,maxSuccess=1000
             ,maxDiscardRatio=1
             ,maxSize=1
             ,chatty=False
             ,maxShrinks=0}

Por ejemplo, si tengo un elemento arbitrario de tipo Gen String y otro de tipo Gen [String], ¿significa que si maxSize=1, la longitud de la string generada es 1 y la longitud de la lista generada de String también es 1?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Según la documentación, maxSize en Args especifica el tamaño máximo de las estructuras de datos utilizadas en los casos de prueba generados. El tamaño de una estructura de datos está determinado por el parámetro Size de la instancia de la clase de tipo Arbitrary para ese tipo de datos.

    Por lo tanto, si maxSize=1, significa que el valor máximo de Size que se pasará a la instancia de Arbitrary para cualquier tipo de dato es 1. Esto puede resultar en casos de prueba generados con estructuras de datos más pequeñas.

    Por ejemplo, si tienes una instancia de Arbitrary para String que utiliza el parámetro Size para generar cadenas de diferentes longitudes, y maxSize=1, entonces la longitud máxima de las cadenas generadas será 1. De manera similar, si tienes una instancia de Arbitrary para [String] que genera listas de cadenas de diferentes longitudes, la longitud máxima de las listas generadas será 1.

    Es importante señalar que maxSize es una forma sencilla de controlar el tamaño de los casos de prueba generados, pero para un control más detallado, puedes utilizar el combinador sized de QuickCheck para generar estructuras de datos de un tamaño específico.

Comments are closed.