¿Por qué obtengo este resultado?double.NaN Igualdad en MS Test
[TestMethod]
public void nan_test()
{
Assert.AreEqual(1, double.NaN, 1E-1); <-- Passes
Assert.AreEqual(1, double.NaN); <-- Fails
}
¿Qué diferencia tiene el delta en afirmar NaN es igual a un número? Seguramente siempre debería regresar falso. Estoy al tanto de IsNaN, pero eso no es útil aquí (ver abajo).
Antecedentes: Tengo una función que devuelve NaN (erróneamente), se suponía que era un número real, pero la prueba aún pasó. Estoy usando el delta porque es una igualdad de doble precisión, la prueba original usó 1E-9.
Entrada de error de Microsoft: https://connect.microsoft.com/VisualStudio/feedback/details/762286/unit-test-with-assert-areequal-2-3-double-nan-0-1-passes – jbe
See también http://stackoverflow.com/questions/1780004/why-do-mstests-assert-areequal1-0-double-nan-0-0-pass –