ANN: leancheck-v0.7.2, enumerative QuickCheck-like testing

Hello Haskell-Café, LeanCheck is a simple enumerative property-based testing library for Haskell. It is highly portable, and even works on Hugs98 (v2006-09). It does not pull any dependencies other than what's bundled with GHC. Check it out on Hackage and GitHub: https://hackage.haskell.org/package/leancheck https://github.com/rudymatela/leancheck A simple example follows: > import Test.LeanCheck > import Data.List (sort, union) > check $ \xs -> sort (sort xs) == sort (xs::[Int]) +++ OK, passed 200 tests. > check $ \xs ys -> xs `union` ys == ys `union` (xs::[Int]) *** Failed! Falsifiable (after 4 tests): [] [0,0] LeanCheck works on all types that are instances of the Listable typeclass. A TH automatic deriver is provided with LeanCheck so you don't need to learn LeanCheck's DSL to test with your types. I recently released 0.7.2, there are several additions since last announcement here. Notable changes include: * minor fixes for loading on Hugs98; * functions to compute statistics about generated values; and * a family of functions to test invariants of typeclass instances: > data MyTy = ... > instance ... MyTy where ... > import Test.LeanCheck.Utils > check $ (okEqOrd :: MyTy -> MyTy -> MyTy -> Bool) +++ OK, passed 200 tests. > check $ (okNum :: MyTy -> MyTy -> MyTy -> Bool) +++ OK, passed 200 tests. LeanCheck is available on Hackage or Stackage, and can be installed using: $ cabal install leancheck As far as I am aware, there are no bindings to use LeanCheck with tasty, test-framework or hspec yet, but contributions are welcome. I may create bindings for those if I ever get the time. Best Regards, Rudy
participants (1)
-
Rudy Matela