【发布时间】:2021-07-25 16:30:20
【问题描述】:
我想使用 Scala 的基于属性的测试工具 ScalaCheck 来表达一个属性
if an integer n * n = 0 then n = 0
如何在 ScalaCheck 中编写此属性?我知道例如
val myprop = forAll {(n: Int) => n + 1 - 1 = n}
但我不知道如何在 ScalaCheck 中表达“A 蕴含 B”(没有将其简化为 Not-A 或 B,这看起来很笨拙)。
【问题讨论】:
-
这不行吗?
forAll {(n: Int) => n * n == 0 && n == 0} -
或者:
forAll { (n: Int) => if (n * n == 0) n == 0 else true }。如果您想表达“当且仅当”属性,可以将其表达为forAll { (n: Int) => (n * n == 0) == (n == 0) }
标签: scala syntax scalacheck