【发布时间】:2010-10-27 02:36:27
【问题描述】:
我有一些执行浮点/双精度操作的 C# 单元测试,我想对它们进行单元测试。由于舍入错误,Assert.AreEqual 不足。
以单位换算为例。 10.5 米到英尺的转换系数为 3.281,所以我得到 34.4505。使用更准确的转换因子给我 34.4488189。我想在 0.1 内测试这个(所以 34.3488-34.5488 会通过测试)。
我可以确定在我的单元测试中手动测试带有容差的值,但这是高度重复的,并且失败消息的描述性不是很好(再次不必编写我自己的断言失败消息):
Assert.IsTrue(Math.Abs(34.4488189 - value) < 0.1);
如何在一定的容错范围内对浮点操作进行单元测试? 我找不到任何 VS 附带的 Assert 类。我错过了还是必须自己动手?
在测试浮点数/双精度数时是否有标准做法需要牢记?
【问题讨论】:
标签: c# unit-testing .net-3.5 floating-point