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克隆作为起点吗?它的总体实现方法与您的方法非常相似,所以我想您会感到很自在。

但要注意,它引入了一个与生成器分离的类型——“任意”(corresponding to the “Arbitrary” type class in the Haskell code)。对test.check这样做将改变API,所以也许在那个版本,应该通过可选的“transformer”字段扩展“Generator”类型。

0

评论人:reiddraper

当然,我已大致阅读过,但需要更仔细地阅读。你的实现如何处理打印(显示)函数?函数会收缩吗?你看过(链接:http://dl.acm.org/citation.cfm?id=2364516 文本:COLAESSEN 的“展示和收缩函数”)吗?

0

评论者:sperber

是的。还没做过,但我会放在我的清单上。鉴于函数在Clojure中是对象,我认为打印应该比Haskell中要简单一些。

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