在 JUnit 中, double 的 assertEquals 采用绝对增量。但是百分比值不是比绝对值更适合 margin 吗?当比较两个大值时,很可能由于四舍五入而产生的误差(如果有的话)将导致最后一个有效数字与指数无关。在这种情况下,绝对增量没有帮助,是吗?
这并不难,我写了一个,但只是好奇为什么 JUnit 没有那个功能。我错过了什么吗?
最佳答案
视情况而定。如果你有一个固定的精度,例如两位小数你可能想要一个 0.5e-2 的增量,但是如果你有一个未知的精度并且你想要有效数字你可能需要更复杂的东西,比如
assertEquals(expected, actual, Math.abs(expected) / 1e3);
相对误差的问题是很难知道它是相对于预期的、实际的还是两者的某种组合。
关于java - JUnit assertEquals for double with percentage delta,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17236915/