爲什麼我會得到這個結果?double.NaN平等在MS測試
[TestMethod]
public void nan_test()
{
Assert.AreEqual(1, double.NaN, 1E-1); <-- Passes
Assert.AreEqual(1, double.NaN); <-- Fails
}
三角洲聲稱NaN有什麼區別等於一個數字?當然,它總是會返回錯誤的。我知道IsNaN,但在這裏沒有用(見下文)。背景:我有一個函數返回NaN(錯誤地),它的意思是一個實數,但測試仍然通過。我使用的是三角洲,因爲它是雙精度平等,原始測試使用1E-9。
Microsoft bug entry:https://connect.microsoft.com/VisualStudio/feedback/details/762286/unit-test-with-assert-areequal-2-3-double-nan-0-1-passes – jbe 2012-09-12 09:29:09
請參閱也是http://stackoverflow.com/questions/1780004/why-do-mstests-assert-areequal1-0-double-nan-0-0-pass – 2015-01-20 11:30:58