相关疑难解决方法(0)

单元测试(有时)失败,因为浮点不精确

我有一个Vector类代表三维空间中的一个点.该向量具有normalize(self, length = 1)向下/向上缩放向量的方法length == vec.normalize(length).length.

由于浮点数不精确,此方法的unittest 有时会失败.我的问题是,如何在正确实施方法时确保此测试不会失败?是否可以在测试近似值的情况下进行?



其他信息:

    def testNormalize(self):
        vec = Vector(random.random(), random.random(), random.random())
        self.assertEqual(vec.normalize(5).length, 5)
Run Code Online (Sandbox Code Playgroud)

有时导致AssertionError: 4.999999999999999 != 5或者AssertionError: 5.000000000000001 != 5.

注意:我知道浮点问题可能在Vector.length属性中或在Vector.normalize().

python floating-point unit-testing

60
推荐指数
1
解决办法
2万
查看次数

标签 统计

floating-point ×1

python ×1

unit-testing ×1