gpt4 book ai didi

scala - 如何编写 Scalatest 测试以将列表中的值与范围相匹配?

转载 作者:行者123 更新时间:2023-12-04 19:28:26 27 4
gpt4 key购买 nike

如何使用 Scalatest 编写测试以查看列表是否包含给定范围内的 double 值?

例如,我如何检查以下列表中的元素是否大约为 10?

val myList = List(1.5, 2.25, 3.5, 9.9)

对于列表之外的值,我可能会编写一个测试,例如
someVal should be (10.0 +- 1.0)

对于可以精确知道其值的列表,我会写
someList should contain (3.5)

但据我所知,没有好的方法可以使用范围测试列表中的项目。就像是
someList should contain (10.0 +- 1.0)

似乎不起作用。知道我如何编写一个优雅的测试来完成这个吗?

最佳答案

您可以使用 TolerantNumerics 来指定 double :

import org.scalatest.FlatSpec
import org.scalactic.TolerantNumerics
import org.scalatest.Matchers._

class MyTest extends FlatSpec {

implicit val doubleEquality = TolerantNumerics.tolerantDoubleEquality(0.1)

9.9d should be(10.0 +- 1.0)
List[Double](1.5, 2.25, 3.5, 9.9) should contain(10.0)
}

这将失败:
List[Double](1.5, 2.25, 3.5, 9.8) should contain(10.0)

这应该会成功:
List[Double](1.5, 2.25, 3.5, 9.9) should contain(10.0)

关于scala - 如何编写 Scalatest 测试以将列表中的值与范围相匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48942569/

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