私は最近、時系列が本質的にある時系列モジュールを設計しましたSortedDictionnary<DateTime, double>
。
次に、このモジュールが常に機能し、期待どおりの結果が得られることを確認するための単体テストを作成します。
一般的な操作は、時系列のポイント間のパフォーマンスを計算することです。
したがって、私が行うことは、たとえば{1.0、2.0、4.0}(いくつかの日付)で時系列を作成することであり、結果は{100%、100%}になると予想しています。
問題は、値{1.0、1.0}を使用して時系列を手動で作成し、(各ポイントを比較することにより)等しいかどうかを確認すると、実数のバイナリ表現で作業するときは常に不正確になるため、テストは合格しません数字。
したがって、次の関数を作成することにしました。
private static bool isCloseEnough(double expected, double actual, double tolerance=0.002)
{
return squaredDifference(expected, actual) < Math.Pow(tolerance,2);
}
そのような場合に対処する別の一般的な方法はありますか?