QuickCheck
次のプログラムをテストするために使用しています。
{-# LANGUAGE TemplateHaskell #-}
import Test.QuickCheck
import Test.QuickCheck.All
elementAt :: (Integral b) => [a] -> b -> a
elementAt [x] _ = x
elementAt (x:xs) 1 = x
elementAt (x:xs) b = elementAt xs (b - 1)
prop_elementAt xs b = length xs > 0 && b >= 0 && b < length xs ==> elementAt xs (b + 1) == xs !! b
main = $(quickCheckAll)
反応はさまざまですが、常にメッセージを受け取ります
*** Gave up! Passed only x tests.
これは私が心配すべきことですか?または、テスト入力の性質によって、QuickCheck が実行される時間が決まりますか?