首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用fscheck生成数据?

如何使用fscheck生成数据?
EN

Stack Overflow用户
提问于 2012-10-16 01:02:18
回答 1查看 1.3K关注 0票数 3

是否可以使用fscheck生成数据,特别是列表,以便在fscheck之外使用?我无法在fscheck测试中调试比较结果看起来相等的情况,但fscheck说它们不是。

我有一个用于对象列表的生成器。如何生成可以在此生成器中使用的列表?

代码语言:javascript
复制
let genListObj min max  = Gen.listOf Arb.generate<obj> |> Gen.suchThat (fun l -> (l.Length >= min) && (l.Length <= max))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-19 19:52:45

编辑:这个函数现在是FsCheck接口(Gen.sample)的一部分,所以你不再需要下面的代码了……

以下是从给定生成器生成n个样本的示例函数:

代码语言:javascript
复制
let sample n gn  = 
   let rec sample i seed samples =
       if i = 0 then samples
       else sample (i-1) (Random.stdSplit seed |> snd) (Gen.eval 1000 seed gn :: samples)
   sample n (Random.newSeed()) []

编辑:其中的1000幻数表示所生成的值的大小。1000是相当大的-例如,序列的长度将在0到1000个元素之间,字符串也是如此。如果生成需要很长时间,您可能需要调整该值(或将其作为函数的一个参数)。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12900470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档