我希望在一个函数中使用quickcheck来测试Maclaurin系列是否等于1/x,用于x>1和x<2。但是,对于n的小值,quickcheck返回假测试。此外,如果我设置了n>100限制,例如,quickcheck返回:
“放弃了!只通过了0次考试。”
这是我的密码:
prop_inv :: Float -> Int -> Property
prop_inv x n = (x>1 && x<2) && n>100 ==> inv x n == 1/x(inv x n是计算Maclaurin级数的函数。)
发布于 2017-06-12 17:44:08
通常的方法是创建一个小的newtype,它只生成所需范围内的值。例如:
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/xhttps://stackoverflow.com/questions/44505347
复制相似问题