gpt4 book ai didi

haskell - 如何从 QuickCheck 中获得好的(小)收缩?

转载 作者:行者123 更新时间:2023-12-03 08:58:56 25 4
gpt4 key购买 nike

我正在尝试在一些嵌套列表上运行 QuickCheck,如下所示:

type Constraint = Text
data Value = Value [Constraint]
data Literal = Literal Value [Value]
type Formula = [Literal]

所以一个公式是一个文字列表,每个文字都包含一个谓词和一些参数;谓词/参数是字符串形式的约束的析取值。这给了我们一个列表列表的列表,唷!

如果我的 QuickCheck 属性之一失败,我往往会得到一页难以理解的输出。在尝试收缩之前,我曾经通过使用只能生成一小组(小)值的任意实例来解决这个问题。为我的每种类型实现收缩功能似乎有点帮助,但没有我想要的那么多。我仍然得到一页输出。

我认为我想要收缩的是一个小的文字列表,其中每个文字都有一个小的值列表,而这些值又很少有约束,每个约束都尽可能短。但在我目前的努力中,这些列表中至少有一个变得足够大,以至于输出变得可怕。如果我尝试调整我的收缩实现,我还会发现 QC 开始花费很长时间(搜索收缩?),这会阻碍我有效收缩的努力。

当您有这样的嵌套数据时,您如何提高理解 QuickCheck 失败的机会?

最佳答案

FWIW,看看https://github.com/leepike/SmartCheck ,它声称比通常手动完成的收缩效果更好。

关于haskell - 如何从 QuickCheck 中获得好的(小)收缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8788542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com