0

我如何使用 scalacheck 来查看列表中的每个项目是否已正确递增。添加的功能只是将 5 添加到它的参数中。在我标记问题区域不起作用的地方,我怎样才能更好地检查一个列表的每个元素与另一个元素?

      val added = forAll { (a:Array[Int]) => {
         val l=added(a)
         all(
         "size" |: a.size==l.size,
         "sort/elements" |: for(i<-0 to a.size) a(i)+5==l(i) //problem area
            )
           }
          }
4

1 回答 1

0

据所见,当数组为空时会出现异常。解决这个问题的一种方法是用for不同的方式编写循环:

(for(i<-1 until a.size) a(i - 1)+5==l(i - 1))

您还可以zip将 2 个序列放在一起并成对检查元素的相等性

a.zip(l).forall { case (i, j) => i + 5 == j }
于 2015-03-26T02:05:03.250 回答