0
對於給定的名單[1..1],其中n是一個隨機的正整數,我想用2個步驟生成測試數據:如何使用隨機生成QuickCeck測試數據
- 洗牌列表,xs = shuffle [1..n];
- 隨機將xs中的數字x變爲x,其中1 < = y < = n;
經過這2個步驟後,新列表被表示爲ys。
我寫了一個程序。這需要Ys和輸出(X,Y),該函數的原型是這樣的:
solve :: [a] -> (a, a)
我想用Test.QuickCheck來測試我的程序。如何生成這樣的測試數據?我認爲只有在快速檢查
shuffle :: [a] -> Gen [a]
功能,但我不知道如何使用它的想法。
謝謝。我創建了一個Sample數據類型,並提供了這個任意函數。像這樣:https://github.com/liuxinyu95/AlgoXY/blob/algoxy/others/problems/miss-dup/MissDup.hs –
或者你使用'quickCheck $ forAll(myTest 10)$ \ x - > ... '。 – Zeta