Popularity
4.2
Stable
Activity
6.2
Growing
169
5
18

Description

Nyaya is a Scala/Scala.JS library to:

* Test properties using random data. * Prove properties with (reasonably-sized) finite domains. * Assert properties in real data. * Generate random data. * Ensure uniqueness in random data.

Programming language: Scala
License: GNU Lesser General Public License v3.0 only
Tags: Testing     Data    
Latest version: v0.9.2

Nyaya alternatives and similar packages

Based on the "Testing" category.
Alternatively, view Nyaya alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Nyaya or a related project?

Add another 'Testing' Package

README

Nyaya

Nyaya is a Scala/Scala.JS library to:

  • Test properties using random data.
  • Prove properties with (reasonably-sized) finite domains.
  • Assert properties in real data.
  • Generate random data.
  • Ensure uniqueness in random data.

It is:

  • Fast. Probably the fastest Scala random data gen / prop tester. (Benchmarks coming soon…)
  • Has a nice, fluent API for generating random data. [(examples)](doc/FEATURES.md#generating-random-data) ``` scala> import nyaya.gen._ import nyaya.gen._

scala> val g = Gen.int mapTo Gen.boolean.option g: nyaya.gen.Gen[Map[Int,Option[Boolean]]] = Gen()

scala> g.samples().take(1).foreach(println) Map(609117252 -> None, -339 -> Some(true), 1684851879 -> Some(false), 78379 -> None)


<br>

#### SBT setup

```scala
// Property expression, evaluation, assertion.
libraryDependencies += "com.github.japgolly.nyaya" %%% "nyaya-prop" % "0.9.2"

// Random data generation.
libraryDependencies += "com.github.japgolly.nyaya" %%% "nyaya-gen" % "0.9.2"

// Property testing with random data.
// Property proving.
libraryDependencies += "com.github.japgolly.nyaya" %%% "nyaya-test" % "0.9.2" % Test

Doc

  • [Features in more detail](doc/FEATURES.md).
  • [Changelogs](doc/changelog/).

Requires:

  • Scala 2.12+
  • Scala.JS 0.6.32+ (optional)
What does Nyaya mean?

See:

Support

If you like what I do —my OSS libraries, my contributions to other OSS libs, my programming blog— and you'd like to support me, more content, more lib maintenance, please become a patron! I do all my OSS work unpaid so showing your support will make a big difference.

Licence

Copyright (C) 2014-2020 David Barri

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.


*Note that all licence references and agreements mentioned in the Nyaya README section above are relevant to that project's source code only.