我使用以下代码在以下网站上创建挑战:codewars
describe "Random cases" $ do
it "It should handle random test cases" $
property $ prop_check where
prop_check (Positive x) = solution x == ref_sol x
--- ref_sol function
我想将prop_check中的x
的值设置为大于4的正整数,并且最大为五位数字(不超过五位,即:最大值= 99999)。
我将如何去接近它?
答案 0 :(得分:3)
您可以使用QuickCheck的choose
函数在一个包含范围内选择一个值。最简单的方法可能是用prop_check
表示法来写do
:
prop_check :: Gen Bool
prop_check = do
x <- choose (5, 99999) :: Gen Integer
return $ solution x == ref_sol x
此处,x
是Integer
和5
之间的99999
值。
根据solution
和ref_sol
的类型,第一行可能不需要Gen Integer
类型注释。不过,由于我不知道这些函数的类型,所以我不得不添加注释。