我有一个生成csv文件的函数。这些文件是根据 Dataframe 的内容编写的。我想为这个函数编写单元测试。我想我可以将一个具有正确预期值的csv文件读入一个dataframe,然后进行Assert。然而,这些 Dataframe 的一些值并不完全相同。例如,它们可以是8.00和7.999999这样的数字我的问题是,我如何编写比较两个 Dataframe 的Assert来检查它们的近似相等性?
snvhrwxg1#
如果使用pandas,可以使用pandas.testing模块(https://pandas.pydata.org/docs/reference/API/pandas.testing.assert_frame_equal.html#pandas.testing.assert_frame_equal)
import pandas as pd from pandas.testing import assert_frame_equal df1 = pd.DataFrame({'A': [8.00], 'B': [7.999999]}) df2 = pd.DataFrame({'A': [8.01], 'B': [7.999998]}) tolerance = 0.01 assert_frame_equal(df1, df2, check_less_precise=True, atol=tolerance)
wz8daaqr2#
如果你正在使用pytest,你可以做以下事情
relative_tolerance = 0.000001 x = 7.999999 y = 8.0 assert x == pytest.approx(y, relative_tolerance)
w80xi6nr3#
Python的unittest框架有一个方法可能对assertAlmostEqual有帮助
unittest
assertAlmostEqual
3条答案
按热度按时间snvhrwxg1#
如果使用pandas,可以使用pandas.testing模块(https://pandas.pydata.org/docs/reference/API/pandas.testing.assert_frame_equal.html#pandas.testing.assert_frame_equal)
wz8daaqr2#
如果你正在使用pytest,你可以做以下事情
w80xi6nr3#
Python的
unittest
框架有一个方法可能对assertAlmostEqual
有帮助