Skip to content

Instantly share code, notes, and snippets.

@rirakkumya
Created January 24, 2012 05:39
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rirakkumya/1668203 to your computer and use it in GitHub Desktop.
Save rirakkumya/1668203 to your computer and use it in GitHub Desktop.
ScalaCheckGeneratorSample
//ランダムにユーザーデータを作成
//name⇒20文字以内の英字
//age⇒1~100歳
import org.scalacheck.Gen
case class User(name:String, age:Int)
val userGen = for{
s <- Gen.choose(1,20)
n <- Gen.alphaStr
a <- Gen.choose(1,100)
}yield User(n.take(s),a)
//ランダムデータを100件作成して表示
Gen.listOfN(100,userGen).sample
//年齢分布を高齢化
for{
s <- Gen.choose(1,20)
n <- Gen.alphaStr
a <- Gen.frequency((5,Gen.choose(41,100)), (3,Gen.choose(21,40)), (1,Gen.choose(1,20)))
}yield User(n.take(s),a)
//名前の選択肢を固定
val aa = List("鹿目","暁美","美樹","巴")
val bb = List("まどか","ほむら","さやか","マミ","キュゥべえ")
for{
n1 <- Gen.oneOf(aa)
n2 <- Gen.oneOf(bb)
a <- Gen.frequency((5,Gen.choose(41,100)), (3,Gen.choose(21,40)), (1,Gen.choose(1,20)))
}yield User((n1 + " " + n2),a)
@rirakkumya
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment