Digamos que quiero escribir algunas pruebas de unidad para la función (!!)
.¿Cómo decirle a QuickCheck que genere solo índices de listas válidos para un parámetro?
my_prop xs n = ...
que desea restringir n a sólo índices válidos y sé que podría hacer algo como
my_prop xs n = (not.null) (drop n xs) ==> ...
Pero esto lo hace de manera que la gran mayoría de los casos generados no son válidos y botados . ¿Hay alguna manera de configurarlo para que QuickCheck genere primero la lista xs
y use su valor para generar solo casos válidos de n
?
Crea un nuevo tipo que contenga una lista y un 'Int' con una instancia apropiada' Arbitrary'. –