我正在创建单元测试,并且我有一个测试用例,其中输出预计是一个空的 numpy 数组。我有第二个测试用例,我测试另一个包含元素的预期数组。
class myTests(unittest.TestCase):
def test_function(self):
var = 0
result = myFunction(var)
self.assertEqual(np.array([], dtype=np.int64), result)
AssertionError: array([], dtype=int64) != array([], dtype=int64)
我有一种感觉,因为它们都是空的,但我不确定。我应该如何进行此测试?
我运行了一个调试器来比较这两个变量,这就是我得到的结果。
结果
array([], dtype=int64)
special variables
[0:0] :[]
dtype:dtype('int64')
max:'array is empty'
min:'array is empty'
shape:(0,)
size:0
np.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
最佳答案
我相信这与比较空数组的相等性有关。
The truth value of an empty array is ambiguous.
如果您查看比较结果,您会发现它不是 bool 值:
>>> np.array([], dtype=np.int64) == np.array([], dtype=np.int64)
array([], dtype=bool)
您是否考虑过/首先检查数组的长度?
关于python - 断言错误 : array([], dtype=int64) != 数组([], dtype=int64),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68986819/