我有以下特性:ScalaCheck無法施展布爾扶植例如
import org.scalacheck.Prop.propBoolean
def elementsAreReversed(list: List[Int], reversed: List[Int]): Boolean =
if (list.isEmpty) true else {
val lastIdx = list.size - 1
list.zipWithIndex.forall { case (element, index) =>
element == reversed(lastIdx - index)
}
}
val propReversed = Prop.forAll { list: List[Int] =>
val reversed = list.reverse
if (list.isEmpty)
list == reversed
else {
val hasSameSize = reversed.size == list.size
val hasAllElements = list.forall(reversed.contains)
// It works until I add a label here:
hasSameSize && hasAllElements && elementsAreReversed(list, reversed)
}
如果添加一個標籤它打破:
hasSameSize :| " a label which doesn't let the code compile" &&
hasAllElements &&
elementsAreReversed(list, reversed)
編譯器給了我下面的:
錯誤:(47,36)從Any => org.scalacheck.Prop中沒有隱式視圖可用。 VAL propReversed = Prop.forAll {列表:列表[INT] =>
錯誤:(47,36)不夠論據方法FORALL:
(隱式號碼:任何=> org.scalacheck.Prop隱式A1:org.scalacheck.Arbitrary [列表[INT]],隱式S1:org.scalacheck.Shrink [列表[INT]],隱PP1:列表[INT] => org.scalacheck.util.Pretty)的有機.scalacheck.Prop。未指定的值參數 P,A1,S1 ...
VAL propReversed = {Prop.forAll列表:列出[INT] =>
我使用ScalaCheck版本1.13.4