Racket QuickCheck vs scalaprops
Racket QuickCheck
docs.racket-lang.orgscalaprops
github.comSide by side
| Figure | Racket QuickCheck | scalaprops |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Property-Based Testing Tools | 8.2 (#4) | 7.0 (#22) |
| Purpose | Quickcheck tests program specifications by running properties against randomly generated test inputs. | Scalaprops is a property-based testing library for Scala. |
Plans
In their own words
Racket QuickCheck
Racket QuickCheck is a free package for checking program properties with generated inputs. A property is written as ordinary Racket code, and the package runs it against generated values; if a check fails, it reports a counterexample and the arguments that produced it. Its default configuration runs 100 successful tests, and helpers allow counts of 1,000, 10,000, or a custom number. Built-in generators cover integers, real numbers, characters, lists, vectors, strings, and symbols, and custom generators are supported. The `rackunit/quickcheck` integration raises a RackUnit exception when a check fails and includes the test count and counterexample arguments. Install the package with `raco pkg install quickcheck` or through DrRacket’s GUI package manager. It requires Racket v6.0 or newer. Racket provides installers for Linux, macOS, and Windows. The package listing reports a successful build and passing tests, while also noting missing license metadata. The listed price is free.
scalaprops
Scalaprops is a free Scala property-based testing library for Linux. It generates test data, including non-constant scala.FunctionN values through Cogen, and lets each test define flexible parameters. Law checking is configurable, with identifiers that may use types other than String. Scalaz integration supplies laws plus Gen and Cogen instances for Scalaz types. Randomness uses an immutable generator rather than mutable scala.util.Random. Failed tests report their starting seed, which can be passed again with --seed= for repeatable runs. The README states support for Scala.js and Scala Native, using Mersenne Twister by default on JVM and Scala Native and Tiny Mersenne Twister on Scala.js. An sbt plugin adds scalapropsOnly selection by test class, method, and parameter. ScalapropsFramework and sbt are listed test runners. Parallel test execution is unsupported.