我开始通过做 99 个 Haskell 问题来学习 Haskell。 http://www.haskell.org/haskellwiki/H-99:_Ninety-Nine_Haskell_Problems 我想使用快速检查为每个程序/函数编写测试。
我有以下代码:
导入 Test.QuickCheck
导入文本.Printf
main = mapM_ (\(s,a) -> printf "%-25s: " s >> a) 测试
-- 1
myLast lst = 最后一个 lst
prop_1a xs x = myLast (xs ++ [x]) == (x::String)
我的最后一个' = 头。逆转
prop_1b xs x = myLast' (xs ++ [x]) == (x::String)
测试 = [("1a", quickCheck prop_1a)
,("1b", quickCheck prop_1b)
]
我可能会写myLast'',myLast'''等。有没有一种方法可以测试所有这些方法而无需复制代码和快速检查属性?
相关问题:现在,我告诉 quickcheck 使用字符串。有没有办法随机使用不同的类型进行测试?