问问题
1649 次
1 回答
4
为什么不使用 map 在每个维度中使用 assertAlmostEqual?我无权访问您的课程,所以我在这里写了一个类似的示例:
from unittest import TestCase
class Test_Tuple_Equality(TestCase):
def test_tuple_equality_True(self):
p1 = (0.00000001, 0.00000000001, 0)
p2 = (0,0,0)
map(lambda x, y: self.assertAlmostEqual(x,y), p1, p2)
def test_tuple_equality_False(self):
p1 = (0.00000001, 0.00000000001, 0)
p2 = (1,0,0)
map(lambda x, y: self.assertAlmostEqual(x,y), p1, p2)
Map 会将您的 n 维元组比较转换为 n 个浮点比较。
您甚至可以创建一个 compare_points 函数,例如:
def compare_points(self, p1, p2):
map(lambda x,y: self.assertAlmostEqual(x,y), p1,p2)
然后在你的测试中使用它
另一种解决方案是为此使用 numpy 的方法:
import numpy
>>>numpy.testing.assert_almost_equal((2,2,0), (1.9999999999,2,0), decimal=7, err_msg='', verbose=True)
Numpy 安装起来很麻烦,但是,如果您已经在使用它,那将是最合适的。
于 2013-09-15T02:29:24.580 回答