gpt4 book ai didi

scala - 在 ScalaTest 中处理 double

转载 作者:行者123 更新时间:2023-12-04 11:13:54 25 4
gpt4 key购买 nike

我刚刚开始使用 ScalaTest,我正在使用以下内容来比较我的规范中的两个 double ,如下所示:

  it should "calculate the price" in {
val x = new X(10,10,12,1000)
assert(x.price() === 185.92)
}

即使我输入了错误的 185.92 值来与价格函数返回的值进行比较(对于上述情况,实际上返回 10.23),规范仍在通过。我还有其他规范可以比较 Ints他们按预期工作。但涉及 Doubles的那些不顾一切地过去。除了 assert还有其他功能吗?我应该用来比较 Doubles ?

编辑:
def price () : Double

最佳答案

在我看来,你有一个 Equality[Double] 的隐式实例在沿着 org.scalactic.TolerantNumerics 的范围内,其文档为 here .

文档中的示例是:

implicit val doubleEquality = TolerantNumerics.tolerantDoubleEquality(0.01)

但看起来有人在你的情况下用一个非常大的容差值实例化了它。

您也可以考虑使用 +- 来尝试显式容错。 :
assert(x.price() === 185.92 +- 0.01)

关于scala - 在 ScalaTest 中处理 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27809423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com