欢迎!有关本站如何运作的更多信息,请参阅关于页面。
test.check 为一阶类型提供生成器,但不提供函数。
在原始QuickCheck中,一个额外的类型类("Arbitrary")处理函数。
如果我实现这个并提交补丁,它很可能被包括吗?
背景:我在这里写了自己的Clojure QuickCheck克隆
https://bitbucket.org/sperber/deinprogramm.quickcheck
这有代数学和函数生成器,但没有test.check的所有优点。
我正在考虑是继续维护我的QuickCheck克隆还是相反,向test.check贡献力量,所以任何反馈都将非常感谢。
评论者:reiddraper
我很希望有这样一个补丁!你愿意先写一个快速实现建议吗,这样我们就可以在查看代码之前解决任何架构细节?
评论者:sperber
你愿意用我的QuickCheck克隆作为起点吗?它的通用实现方法与你的非常相似,所以我认为你应该感到很自在。
但弊病是它引入了一个与生成器不同的类型——“任意”,对应于Haskell代码中的"Arbitray'类型类"。这样做会改变test.check的API,因此也许在那里,"Generator'类型应该通过可选的"transformer'字段进行扩展。
当然,我已稍微阅读了一下内容,但还需要详细阅读。你的实现是如何处理函数的打印(显示)的?函数会缩小吗?你见过(链接:http://dl.acm.org/citation.cfm?id=2364516 文本:Claessen 的《显示和缩小函数》)吗?
是的。尚未完成,但会列入我的计划之中。鉴于函数在Clojure中是对象,我想打印应该比Haskell中要简单。