2

我有以下代码用于在以下站点上创建挑战: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

我想将xprop_check 中的值设置为大于 4 的正整数,最大为五位数(不超过五位数,即:最大值 = 99999)。

我将如何接近它?

4

1 回答 1

4

您可以使用 QuickCheck 的choose功能选择一个包含范围内的值。最简单的方法可能是prop_checkdo符号编写:

prop_check :: Gen Bool
prop_check = do
  x <- choose (5, 99999) :: Gen Integer
  return $ solution x == ref_sol x

这里,x是一个Integer介于5和之间的值99999

根据 and 的类型solutionref_sol您可能不需要Gen Integer第一行的类型注释。但是,由于我不知道这些函数的类型,所以我不得不添加注释。

于 2018-09-08T10:08:11.920 回答