なぜこの結果が得られるのですか?
[TestMethod]
public void nan_test()
{
Assert.AreEqual(1, double.NaN, 1E-1); <-- Passes
Assert.AreEqual(1, double.NaN); <-- Fails
}
NaNが数値に等しいと主張することでデルタはどのような違いがありますか?確かにそれは常にfalseを返すはずです。私はIsNaNを知っていますが、ここでは役に立ちません(以下を参照)。
背景:NaNを(誤って)返す関数があります。これは実数であることが意図されていましたが、テストに合格しました。デルタを使用しているのは、倍精度の等式であるためです。元のテストでは1E-9を使用していました。