quickcheck

    4熱度

    1回答

    ...而不是爲每個屬性生成100個新的隨機樣本? 我的測試套件包含此處解釋的TemplateHaskell hack [1]至 測試名爲prop_ *的所有函數。在運行測試程序打印 === prop_foo from tests/lala.lhs:20 === +++ OK, passed 100 tests. === prop_bar from tests/lala.lhs:28 ===

    1熱度

    1回答

    說,我的數據類型: data A = A1 | A2 | A3 data B = B1 A | B2 A 我可以很容易地生成的我想測試所有可能的排列B的所有可能性的列表,但我仍然想使用QuickCheck來將它應用的列表中的所有元素吐出。在這種情況下,我想測試一個規則適用於所有可能性,所以我不想生成隨機數據。 假設我已經有了列表中的所有可能性,怎樣才能讓QuickCheck輸出列表中的每個元

    0熱度

    1回答

    對於給定的名單[1..1],其中n是一個隨機的正整數,我想用2個步驟生成測試數據: 洗牌列表,xs = shuffle [1..n]; 隨機將xs中的數字x變爲x,其中1 < = y < = n; 經過這2個步驟後,新列表被表示爲ys。 我寫了一個程序。這需要Ys和輸出(X,Y),該函數的原型是這樣的: solve :: [a] -> (a, a) 我想用Test.QuickCheck來測試我

    5熱度

    3回答

    我需要測試很多訪問數據庫的函數(通過Persistent)。雖然我可以使用monadicIO和withSqlitePool這樣做,但這會導致測試效率低下。每個測試,而不是屬性,但測試,將創建和銷燬數據庫池。我如何防止這種情況? 重要提示:忘記效率或優雅。我還沒有能夠使QuickCheck和Persistent類型甚至組成。 instance (Monad a) => MonadThrow (Pro

    3熱度

    2回答

    我試圖解決與"Haskell Programming from First Principles"第15章中的this other question相同的練習。我已經創建了一個Semigroup實例,並且在編寫練習的QuickCheck部分時遇到了麻煩。 半羣實例應該滿足: a <> (b <> c) == (a <> b) <> c <>哪裏是半羣mappend。 我想出了以下內容: imp

    1熱度

    1回答

    data Edge v = Edge {source :: v, target :: v} deriving (Show,Eq,Ord) data Graph v = Graph {nodes :: Set v, edges :: Set (Edge v)} deriving Show instance Arbitrary v => Arbitrary (Ed

    -2熱度

    1回答

    我試圖生成任意大小的元素爲我的自定義數據類型的任意元素: newtype ZippList a = ZPL ([a], [a]) deriving (Show) 這是我得到: instance Arbitrary a => Arbitrary (ZippList a) where arbitrary = sized zipplist where zipplist n =

    0熱度

    2回答

    我通過堆棧使用Haskell測試框架來評估QuickCheck屬性。當我運行stack test時,失敗的屬性以Gave up! Passed only 95 tests的形式報告。財產測試的很多例子中,我發現報告失敗的形式爲Falsifiable, after 48 tests,然後是失敗的參數。但是,這些示例似乎是直接運行QuickCheck,而不是通過Stack和HTF運行。 如何配置我的環

    3熱度

    1回答

    我想使用的Haskell Test.QuickCheck 的目標是產生具有下列條件(中等,[INT])的數據,以產生一些樣品測試其中元組爲(x,XS): X> 0 X不XS 所有X> 0 抓我的頭,並在一段時間後通過手動https://github.com/stackbuilders/quickcheck-manual絆我可以產生隨機列出符合這些要求: import Test.QuickCheck

    0熱度

    1回答

    考慮從一組可能的字符串中生成字符串的問題,這樣一旦選擇字符串,就不能再次重複。對於這個任務,我想使用QuickCheck的Gen函數。 如果我看看我正在編寫的函數的類型,它看起來非常像狀態monad。由於我正在使用另一個monad,即Gen,在州monad中。我使用StateT寫了我的第一次嘗試。 arbitraryStringS :: StateT GenState Gen String ar