问题
I need to generate strings with the same length. I can't realize how. Many thanks
val s = for {
x <- Gen.alphaStr
} yield ...
回答1:
example code:
import org.scalacheck.Gen
import org.scalacheck.Prop.forAll
// strGen generates a fixed length random string
val strGen = (n: Int) => Gen.listOfN(n, Gen.alphaChar).map(_.mkString)
val fixedLengthStr = forAll(strGen(10)){ s =>
s.length == 10
}
fixedLengthStr.check
to inspect a generated string use:
strGen(5).sample
回答2:
There is a suchThat(f: T => Boolean): Gen[T] = new Gen[T]
on Gen, so could be used like
val stringShorterThan = (n: Int) => Gen.alphaStr.suchThat(s => s.length <= n)
val string64 = stringShorterThan(64)
来源:https://stackoverflow.com/questions/26808596/scalacheck-generate-gen-alphastr-with-the-same-length