(Actual) array: 0.0402666113, 0.2355691
(Expected) array: 0.04027, 0.23557
我試圖寫一個JUnit測試,看看我的預期陣列是否實際陣列相匹配。在上面給出的例子中,測試應該通過(即數組相等) - 然而,實際上它們不會。我會收到一條消息,指出'索引0處的數組不同,期望值爲:0.0402666113;實際:0.04027' 。我認爲這是由於數字的精確性。有沒有辦法比較這些數組而不使用for-loop?
我目前正在嘗試使用該行對它們進行比較:
assertArrayEquals(expected, actual);
我所看到的例子,他們會做這樣的事情:
final double delta = 0.0001;
assertArrayEquals(expected, actual, delta);
這應該工作,但是,我得到'無法解析方法assertArrayEquals(double [],double [],double)'。是否有我可以在我的JUnit版本(4.12)中使用的等效方法 - 如果沒有,我如何在IntelliJ中更新我的JUnit?我最近纔開始使用這個IDE。
非常感謝任何幫助,謝謝。
'assertArrayEquals'也會在某處使用循環。 –
你可以使用除以精確度除法運算來進行數學運算,例如Math.round(a/0.0001)== Math.round(b/0.0001) – copeg
爲什麼不寫入自定義數組等於並傳遞'boolean'來聲明? –