是否可以使用fscheck生成数据,特别是列表,以便在fscheck之外使用?我无法在fscheck测试中调试比较结果看起来相等的情况,但fscheck说它们不是。
我有一个用于对象列表的生成器。如何生成可以在此生成器中使用的列表?
let genListObj min max = Gen.listOf Arb.generate<obj> |> Gen.suchThat (fun l -> (l.Length >= min) && (l.Length <= max))发布于 2012-10-19 19:52:45
编辑:这个函数现在是FsCheck接口(Gen.sample)的一部分,所以你不再需要下面的代码了……
以下是从给定生成器生成n个样本的示例函数:
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个元素之间,字符串也是如此。如果生成需要很长时间,您可能需要调整该值(或将其作为函数的一个参数)。
https://stackoverflow.com/questions/12900470
复制相似问题