如何在ScalaCheck中生成递增序列?
我正在尝试使用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) 生成随机序列似乎并不难。抱歉,我需要更具体地说明可预
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输入的顺序是我不记得见过的,我不认为这是一个预期用途,因此这方面的代码可能很不简单。我明白了,谢谢你的解释。我认为这个问题无关紧要。