6

QuickCheckを使用して、数値計算のためにコードをテストしています。基本的に、私は正確な関数とそれのいくつかの近似を持っており、はるかに効率的です。

私は現在、次のようなテストを行うプロパティを実装しています。

prop_blah input = (abs $ (exact input)-(approx input)) < threshold

しかし、それぞれの近似アルゴリズムがどれほど正確であるかを正確に知り、それらを互いに比較することは本当に素晴らしいことです。これを行う簡単な方法の1つは、不等式の左側の平均と標準偏差のレポートを取得することです。これはどういうわけか可能ですか?

4

1 に答える 1

2

印刷するだけでよい場合は、1回のテスト後に実行されるQuickCheckコールバックを確認する必要があります。それらの定義はTest.QuickCheck.P​​ropertyにあります

それ以外の場合は、Test.QuickCheck.P​​ropertyにある関数を使用できますcollect :: (Show a, Testable prop) => a -> prop -> Property

let a = (abs $ (exact input)-(approx input))
in collect a (a < threshold)

このようにして、少なくとも近似の文字列表現をゲル化し、同じ近似を与える単一のテストの数を知ることもできます。

次のようにして、近似品質を取り除き、要因をリストすることもできます。

prop = collect (abs $ (exact input)-(approx input)) True
于 2012-08-23T12:46:04.563 に答える