我想要确认两个字典几乎相等,但似乎无法做到。
以下是一个例子:
以下是一个例子:
>>> import nose.tools as nt
>>> nt.assert_dict_equal({'a' : 12.4}, {'a' : 5.6 + 6.8})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/unittest/case.py", line 838, in assertDictEqual
self.fail(self._formatMessage(msg, standardMsg))
File "/usr/lib/python2.7/unittest/case.py", line 413, in fail
raise self.failureException(msg)
AssertionError: {'a': 12.4} != {'a': 12.399999999999999}
- {'a': 12.4}
+ {'a': 12.399999999999999}
我希望这个能够通过,就像那样:
>>> nt.assert_almost_equal(12.4, 5.6 + 6.8)
我希望自己只是漏掉了一些简单的东西,比如nt.assert_almost_dict_equal
,或者可能有一个参数可以传递给nt.assert_dict_equal
,用于指定浮点数应该接近多少,但我找不到任何相关内容。
当然,我可以循环遍历字典,并使用nt.assert_almost_equal
逐个比较值;但在我的情况下,字典更加复杂,因此我希望避免这种方法。
有什么最好的方法来断言两个字典几乎相等吗?
assert_almost_equal
仅适用于可以直接计算其差异的数字类型。 - BrenBarn