如何快速检查近似算法?

时间:2016-07-20 13:52:37

标签: haskell quickcheck

我正在通过计算相对误差并将其与文献[1]中给出的误差进行比较来针对最优解决方案测试近似算法( FastDTW )。

问题在于,错误可能比文章中给出的错误大得多,并且没有将容差设置为"接受所有"所有测试都无法通过。

有没有办法告诉QuickCheck我希望只有n个测试通过?我看到函数cover。但只是将测试包装起来似乎没有按预期工作。

或者,如果至少n次测试通过,我可以手动多次运行测试并通过,但我希望这可以通过QuickCheck实现。

编辑以回应Carsten

我这样包裹着:

actualTest :: [Double] -> [Double] -> Bool
actualTest = ... -- runs dtw and fastDtw, compares errors against goal

coverTest :: Property
coverTest = cover True percentage label actualTest

但我不确定第一个参数class或标签1。考虑更多...我猜cover用于确保至少一定比例的测试符合某种条件。

[1] http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.432.4253&rep=rep1&type=pdf#page=64

0 个答案:

没有答案