Sto usando QuickCheck per testare il mio codice per alcuni calcoli numerici. Fondamentalmente ho una funzione esatta e diverse approssimazioni che sono molto più efficienti.Quickcheck per test non booleani
Attualmente sto attuando le proprietà che voglio provare qualcosa di simile:
prop_blah input = (abs $ (exact input)-(approx input)) < threshold
ma sarebbe davvero bello sapere esattamente quanto esatto ciascuno degli algoritmi di approssimazione è e confrontarli tra loro. Un modo semplice per farlo sarebbe ottenere rapporti sulla deviazione media e standard della parte sinistra della disuguaglianza. È in qualche modo possibile?
Beh, è comunque possibile utilizzare quadro di QuickCheck per la generazione di input casuali. Per il calcolo delle statistiche, ti potrebbe piacere il pacchetto ovviamente [statistiche] (http://hackage.haskell.org/package/statistics). –
Penso che sia necessario dimostrare che 'approx' non sarà un fattore * x * lontano dalla risposta corretta, con questa conoscenza la proprietà quickcheck è banale. Cioè, potrebbe aiutare ad analizzare la tua funzione approssimativa in teoria. – Tarrasch
@Tarrasch Sono d'accordo sul fatto che una tale prova sarebbe piacevole, ma sfortunatamente questi algoritmi di solito funzionano abbastanza bene, ma hanno prestazioni peggiori nel peggiore dei casi. Una sorta di euristica per i problemi NP-completi. –