[英]How to test Monad instance for custom StateT?
我正在學習 Monad Transformers,其中一項練習要求為StateT實現 Monad 實例。 我想使用有效性package 測試我的實現是否符合 Monad 法則,這類似於checkers package。 問題是,我的Arbitrary實例無法編譯。 我看到了這個問題,但它並沒有完全 ...
[英]How to test Monad instance for custom StateT?
我正在學習 Monad Transformers,其中一項練習要求為StateT實現 Monad 實例。 我想使用有效性package 測試我的實現是否符合 Monad 法則,這類似於checkers package。 問題是,我的Arbitrary實例無法編譯。 我看到了這個問題,但它並沒有完全 ...
[英]QuickCheck returns "0 tests" when checking Applicative homomorphism property (Binary Tree)
我想檢查同態Applicative法則是否適用於數據類型BinTree :{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE TypeApplications #-} {-# ...
[英]Quickcheck Applicative homomorphism law for Binary Tree
我知道存在以下問題: haskell - 如何快速檢查應用同態屬性? - 堆棧溢出但是引入下面的PRAGMA 沒有解決我的問題。 這些是我的定義:{-# LANGUAGE ViewPatterns #-} {-# LANGUAGE ScopedTypeVariables #-} module ...
[英]Using QuickCheck properties with coverage inside a monadic context
我正在嘗試編寫一個使用cover的 QuickCheck 屬性,以確保測試數據涵蓋某些情況,並結合測試涉及 IO 操作的事實。 問題本質上歸結為以下幾點:prop = do res <- exampleIOAction cover 40.0 (even res) "res is eve ...
[英]How do you run a single test with QuickCheck when using monadicIO in Haskell?
我在 Haskell 中使用 QuickCheck 作為測試套件。我想運行一個在 IO Monad 中始終相同的測試。 問題在於 QuickCheck 會自動生成 100 個測試,即使測試不采用任何參數也是如此。 舉個例子(不是我的實際測試):prop_parseTest :: Property ...
[英]How to organize definition with QuickCheck Arbitrary class in Haskell
我正在學習使用QuickCheck ,發現它是一個非常強大的庫。 我用stack編寫了一些玩具程序,涉及一些自定義data類型,並在我第一次運行時在一個文件中定義了所有Arbitrary實例,它運行良好:-- MyModule.hs module MyModule ( A(..) , B( ...
[英]Symbolic calls with Quickcheck in erlang
嗨,我正在嘗試在 erlang 中學習快速檢查(quviq),我遇到了一個練習,我必須使用符號調用測試模擬緩存。 但是我遇到了問題,因為我得到了 嘗試調用以符號方式調用並保存/存儲在變量中的函數時出錯,以便可以使用不同的模式匹配調用它,如對匿名函數和模式匹配的響應中所見。 編輯: 例如,在下 ...
[英]Are there Rust QuickCheck ports which support running with a seed
我想做快速檢查/基於屬性的測試並讓它在 CI 中運行,但我不想向 CI 添加隨機測試(因為當其他人試圖合並不相關的更改和強制時,它可能會失敗他們重新運行)。 是否有任何基於 Rust 屬性的測試庫支持這一點? ...
[英]QuickCheck Stack Overflow
我有以下結構: 為此,我將Arbitrary定義如下: 我也有這個測試用例: 沒有我自定義的shrink實現,產生的反例是: 直觀地可以看出,一個更好的反例可能是Restriction { min: Some(1), max: None } ,我什至會接受Restriction { ...
[英]How to explicitly import 'Fn' pattern from Test.QuickCheck?
Haskell 的Test.QuickCheck模塊導出了我一直在使用的pattern Fn 。 當我導入它時: 它工作正常。 但是,當我使用以下命令導入它時: 我收到一個錯誤: Module 'Test.QuickCheck' does not export 'Fn' 。 我也嘗試過i ...
[英]How to configure QuickCheck with cabal?
我正在學習構建一個 Haskell 包。 我堅持的一件事是使用 QuickCheck 運行測試。 具體來說,如何配置要運行的試驗次數? 這是我的帶有虛擬測試的測試文件( Test.hs ): module Main where import System.Exit (exitFailure) ...
[英]Using choose in frequency Haskell QuickCheck
所以我有下面的代碼,我試圖讓它成為Arbitrary的一個實例: 然而,有了這個我得到(可以理解的)錯誤: 我怎樣才能完成這個? 另外,我想用隨機Int返回I而不是 ( I 1 )。 但是,使用arbitrary function 而不是1會導致相同的錯誤。 ...
[英]Generating random binary search trees with the Arbitrary typeclass
我正在處理一個問題集,我必須為二叉搜索樹編寫一個任意實例。 這是我到目前為止編寫的代碼: 我不確定如何讓頻率列表的第二行進行類型檢查。 我可以看到gen返回一個Gen Tree並且insert需要一個Tree作為它的第二個參數,但我不確定如何用這些知識重組代碼。 但是,我需要使用insert fun ...
[英]Using IO within a QuickCheck property test?
我目前正在編寫一個 Haskell 庫來替換封閉源代碼的第 3 方命令行應用程序。 這個第 3 方 CLI 有一個我已經復制的規范,但實際上二進制允許的輸入比規范多得多。 我希望能夠使用QuickCheck生成輸入,然后將我的庫中 function 的結果與第 3 方 CLI 應用程序的標准輸出進 ...
[英]What does the maxSize field describe in Args from Test.QuickCheck?
我正在查看Args中的maxSize 。 它的描述說: “用於最大測試用例的大小” 。 但是測試用例的大小是如何確定的呢? 我寧願通過源代碼詢問go: 例如,如果我有一個Gen String類型和另一個Gen [String]類型,那么如果maxSize=1這意味着生成的字符串的長度是 1,而生成 ...
[英]Why cannot I get `where` to work in Hspec
我正在努力解決do塊中where的語義,特別是Test.Hspec 。 以下作品: 這不會: 它失敗了: 我做錯了什么還是這是某種固有的限制where ? ...
[英]No instance for (Arbitrary Natural) arising from a use of ‘prop’
我正在嘗試為二進有理數的實現編寫以下測試。 我對haskell很陌生,所以我幾乎不明白我在這里做什么。 我首先用這個簽名寫了測試; dyadic_add :: Dyadic -> Dyadic -> Bool 。 鑒於我的數據類型只是data Dyadic = Dyadic In ...
[英]How to come up with properties in propety based testing
這個問題適用於任何特定的編程語言。 假設我有一個函數可以將數據結構轉換為十六進制字符串。 假設我現在想使用基於屬性的測試來測試這個。 我如何想出作為測試基礎的屬性? 我在基於屬性的測試中看到的所有示例都假定了非常簡單的數學關系。 諸如測試反轉列表或字符串是否是另一個字符串的子字符串之類的事情 ...
[英]How to fix a matching error on a quickCheck done on a valid property of a function?
我想寫一個 function search:: String -> Char -> [Int]返回第一個參數中所有出現的第二個參數的位置。 例如: 根據@Will Ness,最終的代碼如下: 我想用搜索屬性做一個 QuickCheck 測試,即 output 不能有比第一個參數更多的元 ...
[英]Why does quickcheck pass for these two different functions Haskell?
我有兩個功能。 他們是: 和 除了空列表和任何具有一個元素的列表之外,這兩個函數返回相同的列表是沒有意義的,但是在此 function 上運行快速檢查時: 所有的測試都通過了。 為什么會這樣? 編輯: 例如這樣做: (f1 [1,2,3] == f6 [1, 2, 3])顯然會導致 False,但 ...