【发布时间】:2025-12-12 03:35:01
【问题描述】:
我正在尝试创建一个断言等于 (double, double, epsilon) 方法。我创建了它,由于某种原因,当我运行我的测试器时,该方法失败了。
public static void assertEquals(double expect, double actual, double epsilon){
totalAssertMethods ++;
double difference = (Math.abs(expect - actual));
if (difference <= epsilon){
} else {
totalAssertMethodsFailures ++;
Throwable throwable = new Throwable("Error: Expected X +/-E, found Y");
throwable.printStackTrace();
}
}
我认为问题在于,测试中期望和实际之间的差异仅与 epsilon 相差约 0.000001。有谁知道如何解决这个问题?
【问题讨论】:
-
你的输入值是多少?
-
预期 = 0.123456 和实际 = 0.1234571
-
这是否意味着您的方法确实有效?差值为 0.0000011 (> 0.000001)。但由于舍入误差,这种比较总是很棘手。
-
我希望这个失败,我有一个计数器可以计算失败的测试,它预计会有四个,但它会将这个计算为通过测试,所以我收到一个错误,说测试失败是一个短.
标签: java double assert epsilon