繁体   English   中英

生成随机大小的Scala列表

[英]Generating a Scala list of random size

我正在使用创建一个scala json:

lazy val genDefaultValue: Gen[List[JsonPatch]] = {
listOf(
  genJson("/primary", true),
  genJson("/secondary", true),
  genJson("/fallback", true)
)
}

这将仅创建带有项目之一的随机json。 我无法使用上述3个列表元素创建随机大小的列表。 ListSize可以是1到3之间的任何值。

genJson是一个内部函数,当通过预期类型的​​路径Gen [T]时会创建一个Json。

一种选择如下:

  1. 使用Random.shuffle()对列表重新排序(如果您希望每次的顺序都不同)。
  2. 在(可以随机播放的)列表中调用.take(x) ,其中x是1到3之间的随机值。

假设您使用的是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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM