2024年Clojure调查中分享你的想法!

欢迎!请查看关于页面以了解该网站是如何工作的更多信息。

0
test.check

test.check 为一阶类型提供生成器,但不是为函数。

在原始的QuickCheck中,一个额外的类型类("Arbitrary")负责处理函数。
函数。

如果我实现了这个并提交一个补丁,它可能被包括在内吗?

背景:我在这里写了自己的Clojure QuickCheck克隆

https://bitbucket.org/sperber/deinprogramm.quickcheck

这有自己的归约库和函数生成器,但没有test.check的所有好处。

我正在考虑是否继续维护我的QuickCheck克隆,还是
相反地,为test.check做出贡献,因此反馈会受到高度欢迎。

5 个答案

0

评论者:reiddraper

我非常希望看到这个补丁!你愿意先写一个快速实现建议吗,这样我们可以在查看代码之前处理任何架构细节?

0

评论者:sperber

你愿意以我的QuickCheck克隆作为起点吗?它的通用实现方式与你的是非常类似的,所以我认为你会感到非常舒适。

但是有一个注意事项,那就是它引入了一个与生成器不同的类型——"arbitrary",这在Haskell代码中对应于"Arbitrary'类型类。在test.check上这样做会改变API,所以也许在那里,应该通过一个可选的"transformer'字段"扩展"Generator'类型。"

0

评论者:reiddraper

当然,我已经粗略地看过,但需要更仔细地阅读。你的实现如何处理打印(显示)函数?函数会缩小吗?你看到过(链接: http://dl.acm.org/citation.cfm?id=2364516 文本:Claessen 的函数显示和缩小)了吗?

0

评论者:sperber

是的。还没有做这个,但它会在我的清单上。鉴于函数在Clojure中是对象,我认为打印会比Haskell容易一些。

0
参考:https://clojure.atlassian.net/browse/TCHECK-38 (由 alex+import 报告)
...