gpt4 book ai didi

fscheck - 如何使用 C# 中的 FsCheck 自定义生成器?

转载 作者:行者123 更新时间:2023-12-05 03:07:19 26 4
gpt4 key购买 nike

我有以下代码:

var gen = from x in Arb.Generate<int>()
from int y in Gen.Choose(5, 10)
where x > 5
select new tuple { Fst = x, Snd = y };

我可以跑

Prop.ForAll<tuple>(c =>
Console.WriteLine($"{c.Fst}, {c.Snd}")
).Check(Configuration.Default);

我看到了所有构造生成器和定义属性的方法。

但我只是没有足够快地找到如何将它们一起使用。

最佳答案

您需要使用 FsCheck 注册自定义生成器。参见 FSCheck docs .

简而言之,创建一个类来保存您的自定义生成器。有一个公共(public)静态方法返回 Arbitrary<T>其中 T是您要生成的类型。

在您的示例中,您需要将生成器包装在对 Arb.From(...) 的调用中.

public class MyGenerators {
public static Arbitrary<tuple> Tuple() {
return Arb.From(from x in Arb.Generate<int>()
from int y in Gen.Choose(5, 10)
where x > 5
select new tuple { Fst = x, Snd = y });
}
}

最后,调用Arb.Register<MyGenerators>()在运行测试之前。

关于fscheck - 如何使用 C# 中的 FsCheck 自定义生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47817092/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com