单元测试生成csv文件的函数

x6492ojm  于 2023-06-19  发布在  其他
关注(0)|答案(3)|浏览(92)

我有一个生成csv文件的函数。这些文件是根据 Dataframe 的内容编写的。
我想为这个函数编写单元测试。
我想我可以将一个具有正确预期值的csv文件读入一个dataframe,然后进行Assert。
然而,这些 Dataframe 的一些值并不完全相同。例如,它们可以是8.00和7.999999这样的数字
我的问题是,我如何编写比较两个 Dataframe 的Assert来检查它们的近似相等性?

snvhrwxg

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)
wz8daaqr

wz8daaqr2#

如果你正在使用pytest,你可以做以下事情

relative_tolerance = 0.000001
x = 7.999999
y = 8.0
assert x == pytest.approx(y, relative_tolerance)
w80xi6nr

w80xi6nr3#

Python的unittest框架有一个方法可能对assertAlmostEqual有帮助

相关问题