我正在创建单元测试,并且我有一个测试用例,其中的输出应该是一个空的numpy数组。我有第二个测试用例,其中我测试另一个包含元素的预期数组。
class myTests(unittest.TestCase):
def test_function(self):
var = 0
result = myFunction(var)
self.assertEqual(np.array([], dtype=np.int64), result)AssertionError:数组([],dtype=int64) !=数组([],dtype=int64)
我有一种感觉,那是因为它们都是空的,但我不确定。我该怎么做这个测试呢?
我运行了一个调试器来比较这两个变量,这就是我得到的结果。
结果
array([], dtype=int64)
special variables
[0:0] :[]
dtype:dtype('int64')
max:'array is empty'
min:'array is empty'
shape:(0,)
size:0np.array([],dtype=np.int64)
array([], dtype=int64)
special variables
[0:0] :[]
dtype:dtype('int64')
max:'array is empty'
min:'array is empty'
shape:(0,)
size:0发布于 2021-08-30 15:51:11
我认为这与比较空数组的相等性有关。
空数组的真值是不明确的。
如果您查看比较的结果,就会发现它不是bool值:
>>> np.array([], dtype=np.int64) == np.array([], dtype=np.int64)
array([], dtype=bool)您是否考虑过先检查数组的长度而不是检查数组的长度?
发布于 2021-08-30 15:54:11
如果您使用的是Python3,并且关心内容的排序,则可以使用assertSequenceEqual()
https://stackoverflow.com/questions/68986819
复制相似问题