Warum bekomme ich dieses Ergebnis?double.NaN Gleichheit in MS Test
[TestMethod]
public void nan_test()
{
Assert.AreEqual(1, double.NaN, 1E-1); <-- Passes
Assert.AreEqual(1, double.NaN); <-- Fails
}
Welchen Unterschied hat das Delta bei der Bestätigung von NaN gleich einer Zahl? Sicher sollte es immer falsch zurückgeben. Ich kenne IsNaN, aber das ist hier nicht sinnvoll (siehe unten).
Hintergrund: Ich habe eine Funktion, die NaN (fehlerhaft) zurückgibt, es sollte eine reelle Zahl sein, aber der Test ist noch bestanden. Ich benutze das Delta, weil es doppelte Genauigkeitsgleichheit ist, der ursprüngliche Test verwendete 1E-9.
Eintrag Microsoft Bug: https://connect.microsoft.com/VisualStudio/feedback/details/762286/unit-test-with-assert-areequal-2-3-double-nan-0-1-passes – jbe
anzeigen auch http://stackoverflow.com/questions/1780004/why-do-mstests-assert-areequal1-0-double-nan-0-0-pass –