如何在ScalaCheck中生成递增序列?

如何在ScalaCheck中生成递增序列?,scala,scalacheck,Scala,Scalacheck,我正在尝试使用ScalaCheck生成递增的数字序列 我想实现这样的目标: 02446 通过第2步增加范围0..3来实现: 0 * 2 = 0 1 * 2 = 2 2 * 2 = 4 3 * 2 = 6 谢谢你的帮助。 很抱歉,如果以前有人问过这个问题。它实际上没有使用ScalaCheck,但您可以使用偶数流: >val偶数=Stream.from(0,2) >偶数(4) //展示 //res2:Stream[Int]=流(0,2,4,6) 生成随机序列似乎并不难。抱歉,我需要更具体地说明可预

我正在尝试使用ScalaCheck生成递增的数字序列

我想实现这样的目标:

02446

通过第2步增加范围0..3来实现:

0 * 2 = 0
1 * 2 = 2
2 * 2 = 4
3 * 2 = 6
谢谢你的帮助。
很抱歉,如果以前有人问过这个问题。

它实际上没有使用
ScalaCheck
,但您可以使用
偶数流:

>val偶数=Stream.from(0,2)
>偶数(4)
//展示
//res2:Stream[Int]=流(0,2,4,6)

生成随机序列似乎并不难。抱歉,我需要更具体地说明可预测性

object GenerateSequence {

  def apply(maxSize: Int, maxStep: Int): Gen[Seq[Int]] = {
    for {
      size <- Gen.chooseNum(1, maxSize)
      step <- Gen.chooseNum(1, maxStep)
    } yield {
      (0 to size).map(_ * step)
    }
  }
}
对象生成序列{
def应用(maxSize:Int,maxStep:Int):Gen[Seq[Int]={
为了{

大小您想使用ScalaCheck生成器而不是普通的Scala范围(如
0到6x2
)有什么具体原因吗?我遇到了一个项目,其中使用了基于属性的测试,所以只是学习ScalaCheck来测试我的代码。ScalaCheck生成器通常会生成一些随机输入数据。生成完整且可预测的se输入的顺序是我不记得见过的,我不认为这是一个预期用途,因此这方面的代码可能很不简单。我明白了,谢谢你的解释。我认为这个问题无关紧要。