वापस लौटें मैं another answer के बाद क्विक चेक का उपयोग करने की कोशिश कर रहा हूं। मैं इस तरह का परीक्षण:quickCheck हमेशा "True"
{-# LANGUAGE TemplateHaskell #-}
import Test.QuickCheck
import Test.QuickCheck.All
last' :: [a] -> a
last' [x] = x
last' (_:xs) = last' xs
prop_test x = last' x == last x
check = do
putStrLn "quickCheck"
quickCheck (prop_test :: [Char]-> Bool)
check2 = do
putStrLn "quickCheckAll"
$quickCheckAll
तब मैं winGHCI में लोड और check
और check2
कहते हैं। मुझे
quickCheck
*** Failed! (after 1 test):
Exception:
list.hs:(7,1)-(8,23): Non-exhaustive patterns in function last'
""
जो मुझे लगता है कि यह उचित है। हालांकि, मैं से check2
quickCheckAll
True
मैं उलझन में हूं, क्योंकि कोई बात नहीं मैं last'
समारोह, यहां तक कि गलत कैसे बदलने के लिए, quickCheckAll
हमेशा सच लौट इस मिलता है।
मेरे कोड में क्या गलत है? मैं इसे कैसे ठीक करूं?
जब मैं कोशिश करता हूं, तो मुझे एक चेतावनी भी मिलती है: "स्रोत फ़ाइल में पाया गया prop_test लेकिन स्कोप में नहीं था" (कॉल पर 'लाइन चेक पॉइंट' के साथ 'QuickCheckAll')। बहुत रहस्यमय –