C#单元测试数精度问题

tho*_*234 3 c# unit-testing visual-studio-2008

我正在测试将返回其均值/方差/标准差的基本数学函数.我面临的问题是我无法获得函数返回的数学"期望值"的精度.例如,如果方差函数返回50.5555555555566,即使我将预期值明确设置为50.5555555555566,它也会说它们是两个不同的双精度且单元测试失败.

以下是单元测试的实际输出:

Assert.AreEqual失败.预期:<50.5555555555556>.实际:<50.5555555555566>.

任何人都可以建议解决这个问题吗?我正在使用内置的visual studio单元测试套件.谢谢.

Gis*_*shu 8

需要使用公差值测试浮点(单/双)数字.所以你可以说两个数字是否在彼此的0.0001(容差)范围内,认为它们是相等的

在NUnit中,您有比较断言.例如AreEqual的以下重载,找到MSTest的等效值.

Assert.AreEqual( double expected, double actual, double tolerance,
                 string message );
Run Code Online (Sandbox Code Playgroud)

更新:这应该是您在MSTest中需要的方法.试着看看它是否解决了你的问题..