【发布时间】:2016-01-16 22:08:23
【问题描述】:
假设我正在为一个返回浮点数的函数编写单元测试,我可以按照我的机器以全精度执行它:
>>> import unittest
>>> def div(x,y): return x/float(y)
...
>>>
>>> class Testdiv(unittest.TestCase):
... def testdiv(self):
... assert div(1,9) == 0.1111111111111111
...
>>> unittest.main()
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
相同的全浮点精度在 OS/发行版/机器上是否相同?
我可以尝试四舍五入并进行单元测试:
>>> class Testdiv(unittest.TestCase):
... def testdiv(self):
... assert round(div(1,9),4) == 0.1111
...
>>>
我也可以使用log(output) 进行断言,但为了保持固定的小数精度,我仍然需要进行舍入或截断。
但是对于浮点输出的单元测试,还有什么其他方法可以用 Python 处理呢?
【问题讨论】:
标签: python unit-testing testing floating-point precision