小编Inc*_*cio的帖子

使用 atol 和 pandas 意外通过测试assert_frame_equal

我正在尝试使用 pandas 的测试库来比较两个数据帧。我不希望测试通过时的值完全相同,因此我使用 atol 参数。Atol 指定允许的绝对公差。然而,当要比较的值变高时,即使超出容差阈值,测试也会通过。

我在下文中提供了两个可重现的示例:

import pandas as pd
import pandas.testing

df1 = pd.DataFrame([42])
df2 = pd.DataFrame([41])
#This test fails as expected
pd.testing.assert_frame_equal(df1, df2, check_exact=False, atol=0.1)

df1 = pd.DataFrame([2006642])
df2 = pd.DataFrame([2006641])
pd.testing.assert_frame_equal(df1, df2, check_exact=False, atol=0.1)
#this test passes, but it should not
Run Code Online (Sandbox Code Playgroud)

谁能解释为什么会发生这种情况?我是否误解了 atol 的工作原理?

python unit-testing dataframe pandas

7
推荐指数
1
解决办法
2443
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1

unit-testing ×1