假设我正在为一个返回浮点数的函数编写单元测试,我可以按照我的机器完全精度来进行:
>>> 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
在不同的操作系统、发行版和计算机上,浮点数的完整精度是否相同?
我可以尝试四舍五入并进行单元测试,例如:
>>> class Testdiv(unittest.TestCase):
... def testdiv(self):
... assert round(div(1,9),4) == 0.1111
...
>>>
我也可以使用log(output)
来进行断言,但为了保持固定小数精度,我仍然需要四舍五入或截断。
但是,对于浮点数输出,Python中还有哪些其他优雅的单元测试方式呢?