首页 > 解决方案 > 如何在ScalaCheck中生成递增序列?

问题描述

我正在尝试使用 ScalaCheck 生成不断增加的数字序列。

我想实现这样的目标:

0 2 4 6

这是通过将范围 0..3 增加 2 来实现的:

0 * 2 = 0
1 * 2 = 2
2 * 2 = 4
3 * 2 = 6

感谢帮助。对不起,如果问题以前被质疑过。

标签: scalascalacheck

解决方案


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

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)
    }
  }
}

推荐阅读