Мне нужно сгенерировать строки одинаковой длины. Я не могу понять, как. Большое спасибо
val s = for {
x <- Gen.alphaStr
} yield ...
Мне нужно сгенерировать строки одинаковой длины. Я не могу понять, как. Большое спасибо
val s = for {
x <- Gen.alphaStr
} yield ...
пример кода:
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
для проверки сгенерированной строки используйте:
strGen(5).sample
В Gen есть suchThat(f: T => Boolean): Gen[T] = new Gen[T]
, поэтому его можно использовать как
val stringShorterThan = (n: Int) => Gen.alphaStr.suchThat(s => s.length <= n)
val string64 = stringShorterThan(64)
suchThat
- person Valy Dia; 16.02.2019
Gen.alphaStr..map(str => if (str.length <= max) str else str.substring(0,max))
- person Travis Stevens; 13.05.2019