gpt4 book ai didi

haskell - QuickCheck 值相等

转载 作者:行者123 更新时间:2023-12-04 10:38:49 28 4
gpt4 key购买 nike

我有一个如下所示的 QuickCheck 属性:

prop42 :: Foo -> Bool
prop42 foo = fn1 foo == fn2 foo

如果此属性失败,它将打印出 foo曾是。但我真的很想知道 fn1fn2回来。如果 foo很大,手动生成这些信息并不简单。 (即,坐在那里手动输入打印到 Windows 控制台窗口的大量文本。)

测试框架通常具有比较相等性的东西,如果相等性不成立,则打印出两个值。但我似乎无法为 QuickCheck 找到这样的功能......

最佳答案

查看 here 中的组合器.例如,printTestCase允许在失败案例的输出中添加任意字符串。一个简单的例子:

prop x = let f = sin x
in printTestCase ("Should be at least " ++ show f) $ x >= sin x

$> quickCheck Prop
*** 失败的!可证伪(经过 2 次测试和 1 次缩小):
-1.0
至少应为 -0.8414709848078965

关于haskell - QuickCheck 值相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22016483/

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