首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AssertionError:数组([],dtype=int64) !=数组([],dtype=int64)

AssertionError:数组([],dtype=int64) !=数组([],dtype=int64)
EN

Stack Overflow用户
提问于 2021-08-30 15:44:17
回答 2查看 649关注 0票数 1

我正在创建单元测试,并且我有一个测试用例,其中的输出应该是一个空的numpy数组。我有第二个测试用例,其中我测试另一个包含元素的预期数组。

代码语言:javascript
复制
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)

我有一种感觉,那是因为它们都是空的,但我不确定。我该怎么做这个测试呢?

我运行了一个调试器来比较这两个变量,这就是我得到的结果。

结果

代码语言:javascript
复制
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)

代码语言:javascript
复制
array([], dtype=int64)
special variables
[0:0] :[]
dtype:dtype('int64')
max:'array is empty'
min:'array is empty'
shape:(0,)
size:0
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-30 15:51:11

我认为这与比较空数组的相等性有关。

空数组的真值是不明确的。

如果您查看比较的结果,就会发现它不是bool值:

代码语言:javascript
复制
>>> np.array([], dtype=np.int64) == np.array([], dtype=np.int64)
array([], dtype=bool)

您是否考虑过先检查数组的长度而不是检查数组的长度?

票数 2
EN

Stack Overflow用户

发布于 2021-08-30 15:54:11

如果您使用的是Python3,并且关心内容的排序,则可以使用assertSequenceEqual()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68986819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档