数値メソッドのライブラリの開発の一部として、私は通常、ユニットテストを追加します。 Assert.AreEqual型のテストのほとんどは、現在のところ、このタイプのライブラリではそれを超える精度は必要ないため、小数点以下6桁までチェックします。このテストは、これまでのところ、その目的に役立っています。ユニットテストで数値精度を使用する場合
最近、同じライブラリの64ビット版で作業している間に、かなりの数の単体テストの結果が小数点以下6桁まで同じであったが、小数点以下第10桁以降で変化することがわかった。最初にこのことが分かったのはまったく別の話ですが、それらのうちのいくつかを追いかけることで、わからなかった微妙なバグはほとんど解決されませんでした。
これは、ユニットテストで数値を高精度でチェックする価値があると思われます(小数点以下10桁など)。完全精度である可能性もあります)、ライブラリの精度要件はあまり高くありません。科学/数値コードから数値を単体テストするコミュニティは、通常、ここで何をしていますか?推奨/提案/ポインタ
詳細情報:図書館ではダブル値を取り扱っています。それは金融ライブラリなどではないので、小数点は使用しません。
関数が小数点以下の桁まで正しい答えを返し、関数が慎重に選択されたテストのセットを渡す必要がある場合、関数が(N + 1)番目以降のすべてをランダム化しているかどうかは関係ありません小数点以下桁数、またはシステム時間をユニット化されたポインタで割った値に等しい値を設定します。私はあなたの質問への真の答えは、 "より正確な使用"ではないと思う、それは "より良いテストケースを使用する"。 – Patrick87
JUnitでは、浮動小数点比較に必要な等価度を指定できます。 – Cuga
どのデータ型を使用していますか?ライブラリのために作成したもの、 'Decimal'、' Float'/'Double'?あなたが最後の2つのうちの1つであれば、私には「悪い」ニュースがあります... –