【发布时间】:2019-03-28 16:36:43
【问题描述】:
我正在开发一个 Python 版本的库,该库有其他版本,结果已经确定。因此,我的文档字符串中有一些行,例如
>>> air_f(0,0,0,0.9,300.,1.)
-95019.5943231
精度在所有版本都应同意的范围内。如果我在此代码上运行 doctest,它期望值 -95019.59432308903 是一致的,但精度更高。在另一种情况下,8.50371537341e-04 被拒绝,0.0008503715373413415 只多出 1 位精度,但格式不同。
我知道一些处理这个问题的方法。我可以检查所有数字并将其更改为完全精度,或者在每个数字之前添加打印格式语句以仅匹配精度。问题是库中 50 多个单独的文件中的每一个都可以包含数十行这样的行,并且每个文件的特定格式字符串都不同。我见过numtest,但我不知道它是否成熟(而且我在安装它时遇到了问题)。
我希望有一些方法可以扩展建设
if __name__ == '__main__':
import doctest
doctest.testmod()
以便doctest 使用较弱的浮点相等测试。将其添加到 50 个文件中比更改 1000 多个单独的行更易于管理。我不熟悉doctest,所以我不知道这是否可能或如何进行。想法?
【问题讨论】:
标签: python floating-point doctest