hedgehog
QuickCheck

hedgehog | QuickCheck | |
---|---|---|
5 | 1 | |
681 | 741 | |
0.6% | 1.5% | |
6.6 | 7.4 | |
about 1 month ago | 2 months ago | |
Haskell | Haskell | |
BSD 3-clause "New" or "Revised" License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
hedgehog
-
The sad state of property-based testing libraries
> - rose tree "integrated shrinking" (eg. Hedgehog) follows the constraints of the generators, but has issues with monadic bind.
We're at the limits of my amateur knowledge, but I believe this is a fundamental limitation of monadic bind/generators. Instead, you should prefer applicative generators for ideal shrinking. https://github.com/hedgehogqa/haskell-hedgehog/issues/473#is...
In other words, applicative generators do not use "results of generators to dispatch to another generator", but instead shrinking is optimal due to the "parallel" nature of applicatives (I'm using "parallel" in the monadic sense, and not the sense of article's "threading" sense).
-
Monthly Hask Anything (May 2022)
I've had some PRs open on hedgehog for one and two months respectively. It looks like the maintainer isn't currently very active, which is fair enough. This isn't about criticizing him, and I'm not trying to take over the repo.
-
Monthly Hask Anything (February 2022)
Testing libraries like hedgehog often run tests in parallel, so you may find related issues to work on.
-
Mutation Testing
Haskell has QuickCheck and Hedgehog, and dotnet has both as well. F# is favored, but there's C# interop.
QuickCheck
-
Ask HN: Is writing a math proof like programming without ever running your code?
Quickcheck is a Haskell testing library which allows the programmer to write propositions about how a function should behave, and the library will try to find cases which falsify the proposition.
If my understanding is correct, it can't "prove" any properties, only disprove them.
For concretely proving properties of a program, you would need something like Idris's dependent type system, where you can prove that a function always returns a sorted list, for example.
https://github.com/nick8325/quickcheck
What are some alternatives?
tasty - Modern and extensible testing framework for Haskell
hspec - A Testing Framework for Haskell
quickcheck-arbitrary-adt - Typeclass for generating a list of each instance of a sum type's constructors
hspec-wai - Helpers to test WAI applications with Hspec
ghc-prof-flamegraph
doctest-discover - Easy way to run doctests via cabal
smallcheck - Test your Haskell code by exhaustively checking its properties
quickspec - Equational laws for free
quickcheck-state-machine - Test monadic programs using state machine based models
HUnit - A unit testing framework for Haskell
quickcheck-instances - Instances for QuickCheck classes
