[英]Generating a Scala list of random size
I am creating a scala json using : 我正在使用创建一个scala json:
lazy val genDefaultValue: Gen[List[JsonPatch]] = {
listOf(
genJson("/primary", true),
genJson("/secondary", true),
genJson("/fallback", true)
)
}
This creates only a random json with one of the item. 这将仅创建带有项目之一的随机json。 I am unable to create a list of random size using above 3 list elements. 我无法使用上述3个列表元素创建随机大小的列表。 ListSize can be anything between 1 to 3. ListSize可以是1到3之间的任何值。
genJson is an internal function which creates a Json when passed a path, Gen[T] for expected type. genJson是一个内部函数,当通过预期类型的路径Gen [T]时会创建一个Json。
One option is as follows: 一种选择如下:
Random.shuffle()
(if you want the order to differ each time). 使用Random.shuffle()
对列表重新排序(如果您希望每次的顺序都不同)。 .take(x)
on the (optionally shuffled) list, where x is a random value between 1 and 3. 在(可以随机播放的)列表中调用.take(x)
,其中x是1到3之间的随机值。 Assuming you're using ScalaCheck and genJson
returns an instance of Gen[JsonPatch]
, the following code defines a generator for lists of JsonPatch
instances: 假设您使用的是ScalaCheck,并且genJson
返回Gen[JsonPatch]
的实例,以下代码为JsonPatch
实例列表定义了一个生成器:
lazy val genDefaultvalue =
Gen.listOf(Gen.oneOf(genJson("/primary", true),
genJson("/secondary", true),
genJson("/fallback", true)))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.