"放弃" - 快速检查

时间:2017-06-12 17:26:18

标签: haskell quickcheck

我想在一个测试Maclaurin系列是否等于1/xx>1x<2的函数中使用quickcheck。但是,对于较小的n值,quickcheck会返回false测试。另外,如果我提出n>100限制,例如,quickcheck会返回:

  

&#34;放弃!仅通过了0次测试。&#34;。

这是我的代码:

prop_inv :: Float -> Int -> Property
prop_inv x n = (x>1 && x<2) && n>100 ==> inv x n == 1/x

inv x n是计算Maclaurin系列的函数。)

1 个答案:

答案 0 :(得分:1)

通常的方法是创建一个只生成所需范围内值的小型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/x