在我的测试案例中,我假设如果两个值是 NaN
则它们相等。使用 unittest
断言的表达方式是什么?下面介绍的两个常用函数不处理这种情况。
v1 = np.nan
v2 = np.nan
self.assertEquals(v1, v2)
self.assertTrue(v1 == v2)
现在对我有用的解决方案是在
assertTrue
中使用 bool 表达式:self.assertTrue(v1 == v2 or (np.isnan(v1) and np.isnan(v2))
最佳答案
你可以使用:
numpy.testing.assert_equal(v1, v2)
来自 docs :
当值不相等时它会抛出 AssertionError 并且它应该可以与 pytest 一起正常工作,但它可能不适合单元测试测试。
另一种选择是:
numpy.isclose(v1, v2, equal_nan=True)
但显然它是
math.isclose
的替代品,而不是 ==
。关于python - unittest - 如何断言两个可能的 NaN 值是否相等,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51728427/