我试图比较两个值(浮动)使用挤压,它有时工作良好,但失败几次。这是非常不一致的。有人能帮助我如何使用isclose
来比较浮点值吗。在
以下是我的剧本:
Xposition_set = waitForObject("{id='textBoxGoto_Sample_X'}").text
Xposition_setValue = round(float(Xposition_set), 2)
Xposition_displayed = waitForObject("{id='dbxX' nativeObject.DataContext.Name='" + str(positionList[Index])+ "'}").text
Xposition_displayedValue = round(float(Xposition_displayed), 2)
test.compare(Xposition_setValue, Xposition_displayedValue, GetTestCaseNumber() + "X -Positions matches")
查看documentation for ^{} :
另请注意底部:
所以您应该确保运行的是python3.5+来使用函数。但话说回来,你要做的就是传递你的价值观。浮点算术错误的标准示例通常是添加
0.1 + 0.2
:因此,如果我们检查该计算是否等于
^{pr2}$0.3
:使用新的
math.isclose()
函数,我们可以纠正:在Python3.5之前,您可以手动执行此操作。你只需要检查两个数字之间的绝对差是否很小。
math.isclose()
的默认公差是1e-09
,因此我们可以使用它:事实上,这两个浮动之间的差异甚至远小于:
所以您可以使用一个更强大的阈值,用于手动检查,或者使用
math.isclose()
并为rel_tol
传递一个值。在一般来说,您所尝试的应该是有效的,但是由于缺少信息,因此无法找出您在使用上述代码时遇到的特定问题。在
下面是一个挤压测试脚本示例(用于Windows的Squish,您似乎在使用它),它可以满足您对Squish Addressbook示例的要求:
请注意,这个测试脚本是针对python3.5.x的,因为数学.isclose(),因此它不能像python2.7.x附带的那样使用默认的压缩二进制软件包(请与sqush技术支持人员联系以获得具有不同Python版本的压缩二进制软件包)。在
相关问题 更多 >
编程相关推荐