gpt4 book ai didi

haskell - 使用 quickCheck 测试具有有界值列表的函数

转载 作者:行者123 更新时间:2023-12-01 23:46:19 25 4
gpt4 key购买 nike

我需要用 quickCheck 测试一些功能做验证这些功能。

我需要发送范围内的值 140到该功能,但我是 quickCheck 的初学者它是修饰符。

我试过 :

myTestFunction (x,y,z) (Positive div) = ....


quickCheck myTestFunction
div保持积极但可以取得非常高的值(value)(我不想要)

a 范围内给出 div 随机值的正确方法是什么?至 b ?

是否也可以将值列表(非随机)强加给 quickCheck ?

最佳答案

你需要结合两个部分。第一个是generation — 您需要编写一个 QuickCheck 随机生成器,以输出所需范围内的数字。令人高兴的是,我们可以使用内置函数来做到这一点:

choose :: Random a => (a, a) -> Gen a

接下来,我们需要指定一个使用这个自定义生成器的属性。这是 property combinators的地方真的派上用场了。同样,我们想要的函数是文档部分的第一个:
forAll :: (Show a, Testable prop) => Gen a -> (a -> prop) -> Property

这让我们可以将自定义生成器传入函数参数。

将所有这些放在一起,测试用例将如下所示:
prop_myTest (x, y, z) = forAll (choose (1, 40)) $ \ ndiv -> ...

prop_ ”命名方案通常用于 QuickCheck 测试。这将帮助人们快速了解您的代码中发生了什么并且被一些测试框架使用,因此现在进入是一个好习惯。

关于haskell - 使用 quickCheck 测试具有有界值列表的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29106904/

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