这是在处理 TCHECK-114 时出现的问题。
我编写了一个如下形式的生成器 (gen/frequency (link: [1 gen-1) (link: 2 gen-2)]),并试图弄清楚为什么从 {{gen-2}} 出发的问题并没有总是缩小到 {{gen-1}}。
当我检查收缩树时,我意识到收缩算法确实尝试将选项缩小到 {{gen-1}},但即使在那里找到失败,它也会继续寻找其他选项,并最终缩小到来自 {{gen-2}} 的某个东西,因为它在收缩树中更深,因此被认为更小。
因此,缩减算法没有其他方法来比较输入的“大小”,只能通过它们在搜索树中的深度来比较,这有时会误导人。我怀疑除了可能添加一个选项给 {{quick-check}} 以便使用自定义比较函数之外,没有一般性的解决方案。