首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“放弃”-- QuickCheck

“放弃”-- QuickCheck
EN

Stack Overflow用户
提问于 2017-06-12 17:26:18
回答 1查看 415关注 0票数 0

我希望在一个函数中使用quickcheck来测试Maclaurin系列是否等于1/x,用于x>1x<2。但是,对于n的小值,quickcheck返回假测试。此外,如果我设置了n>100限制,例如,quickcheck返回:

“放弃了!只通过了0次考试。”

这是我的密码:

代码语言:javascript
复制
prop_inv :: Float -> Int -> Property
prop_inv x n = (x>1 && x<2) && n>100 ==> inv x n == 1/x

(inv x n是计算Maclaurin级数的函数。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-12 17:44:08

通常的方法是创建一个小的newtype,它只生成所需范围内的值。例如:

代码语言:javascript
复制
newtype BetweenOneAndTwo = BOAT Float deriving Show
instance Arbitrary BetweenOneAndTwo where
    arbitrary = BOAT <$> Test.QuickCheck.choose (1, 2)

prop_inv (BOAT x) (NonNegative n) = inv x (n+100) == 1/x
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44505347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档