请在 2024 年 Clojure 状态调查! 分享您的想法。

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

0 投票
test.check

这是在处理 TCHECK-114 时出现的问题。

我编写了一个如下形式的生成器 (gen/frequency (link: [1 gen-1) (link: 2 gen-2)]),并试图弄清楚为什么从 {{gen-2}} 出发的问题并没有总是缩小到 {{gen-1}}。

当我检查收缩树时,我意识到收缩算法确实尝试将选项缩小到 {{gen-1}},但即使在那里找到失败,它也会继续寻找其他选项,并最终缩小到来自 {{gen-2}} 的某个东西,因为它在收缩树中更深,因此被认为更小。

因此,缩减算法没有其他方法来比较输入的“大小”,只能通过它们在搜索树中的深度来比较,这有时会误导人。我怀疑除了可能添加一个选项给 {{quick-check}} 以便使用自定义比较函数之外,没有一般性的解决方案。

1 答案

0 投票
参考: https://clojure.atlassian.net/browse/TCHECK-120(由 gfredericks 报告)
...