请在2024年Clojure 调查中分享您的看法!

欢迎!请参阅关于页面了解有关如何使用此站点的更多信息。

0
test.check

test.check 有第一阶类型的生成器,但没有函数的生成器。

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

如果我实现了这个并提交补丁,它有可能被包含吗?

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

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

它有arbitrary和函数生成器,但没有全部包含test.check的特性和功能。

我在尝试决定是否继续维护我的QuickCheck克隆,或者
相反地贡献给test.check,所以任何反馈都将非常感激。

5 个答案

0

评论者:reiddraper

我非常想要这个补丁!你愿意先写一个快速实施方案,这样我们就可以在查看代码之前解决任何架构细节问题吗?

0

评论者:sperber

你愿意以我的QuickCheck克隆作为起点吗?其实现的总体方法是 非常 类似的,所以我认为你应该感到非常自如。

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

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 报告)
...