正確性(這不是定理證明是關於在實踐中檢驗像quickCheck
)證明/測試的通用功能
讓f
一些通用的功能
f :: RESTRICTIONS => GENERICS
一些「理想」性質(即是不是黑客,是不可變的,...)通常是一個純粹的Haskell泛型函數。
假設我們想測試一下,主要的問題是
如果我們有(井)測試該功能爲某種特定類型(例如Int
),我們可以假設它是正確的所有類型?(匹配的限制,當然)
(用「行之有效的」我的意思是「所有」功能{domain X properties}
已經過測試)
Theorically 我們可以肯定,但是,我不知道,如果一些額外的財產,限制,...在實例化過程(即編譯)可能有影響。
謝謝!
注測試也許使用某些類型的特定性質(例如Int
),但這些性能不能是測試屬性的一部分。例如。如果Monoid
是限制條件,那麼關聯性可以是是測試屬性的一部分(但不是限制條件下的交換性)。
例
讓f
repeatedHeader :: Eq a => [a] -> Bool
repeatedHeader (x:y:_) = x == y
repeatedHeader _ = False
test1 = repeatedHeader [1,1,2] == True
test2 = repeatedHeader [1,2,3] == False
好點的想法。謝謝! – josejuan