hedgehog VS QuickCheck

Compare hedgehog vs QuickCheck and see what are their differences.

hedgehog

Release with confidence, state-of-the-art property testing for Haskell. (by hedgehogqa)

QuickCheck

Automatic testing of Haskell programs. (by nick8325)
Nutrient - The #1 PDF SDK Library
Bad PDFs = bad UX. Slow load times, broken annotations, clunky UX frustrates users. Nutrient’s PDF SDKs gives seamless document experiences, fast rendering, annotations, real-time collaboration, 100+ features. Used by 10K+ devs, serving ~half a billion users worldwide. Explore the SDK for free.
nutrient.io
featured
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
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
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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

Posts with mentions or reviews of hedgehog. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-07-04.
  • The sad state of property-based testing libraries
    21 projects | news.ycombinator.com | 4 Jul 2024
    > - 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)
    4 projects | /r/haskell | 3 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)
    4 projects | /r/haskell | 1 Feb 2022
    Testing libraries like hedgehog often run tests in parallel, so you may find related issues to work on.
  • Mutation Testing
    5 projects | /r/programming | 13 Apr 2021
    Haskell has QuickCheck and Hedgehog, and dotnet has both as well. F# is favored, but there's C# interop.

QuickCheck

Posts with mentions or reviews of QuickCheck. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-27.
  • Ask HN: Is writing a math proof like programming without ever running your code?
    3 projects | news.ycombinator.com | 27 Apr 2023
    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?

When comparing hedgehog and QuickCheck you can also consider the following projects:

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

Nutrient - The #1 PDF SDK Library
Bad PDFs = bad UX. Slow load times, broken annotations, clunky UX frustrates users. Nutrient’s PDF SDKs gives seamless document experiences, fast rendering, annotations, real-time collaboration, 100+ features. Used by 10K+ devs, serving ~half a billion users worldwide. Explore the SDK for free.
nutrient.io
featured
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured

Did you know that Haskell is
the 25th most popular programming language
based on number of references?