我最近设计了一个时间序列模块,我的时间序列本质上是一个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);
}
是否有另一种处理此类案件的常用方法?