Estoy usando QuickCheck para probar mi código para algunos cálculos numéricos. Básicamente tengo una función exacta y varias aproximaciones que son mucho más eficientes.Comprobación rápida para pruebas no booleanas
Actualmente estoy poniendo en práctica las propiedades que desea probar algo como:
prop_blah input = (abs $ (exact input)-(approx input)) < threshold
pero sería muy agradable saber exactamente cómo precisa cada uno de los algoritmos de aproximación es y compararlos entre sí. Una manera fácil de hacerlo sería obtener informes de la media y la desviación estándar del lado izquierdo de la desigualdad. ¿Es esto de alguna manera posible?
Bueno, todavía se puede emplear el marco de QuickCheck para la generación de entradas aleatorias. Para calcular las estadísticas, es posible que le guste el paquete [statistics] (http://hackage.haskell.org/package/statistics) obviamente nombrado. –
Creo que necesita alguna prueba de que 'aproximadamente 'no será un factor * x * de la respuesta correcta, con ese conocimiento la propiedad quickcheck es trivial. Es decir, podría ayudar analizar su función aproximada teóricamente. – Tarrasch
@Tarrasch Estoy de acuerdo en que tal prueba sería agradable, pero lamentablemente estos algoritmos suelen funcionar bastante bien, pero tienen un peor rendimiento en el peor de los casos. Algo así como una heurística para los problemas NP-completos. –