QuickCheckVariant: Valid and Invalid generator

[ gpl, library, testing ] [ Propose Tags ]

Valid and Invalid data generator with a type class


[Skip to Readme]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4, 0.1.1.0, 0.2.0.0, 1.0.0.0, 1.0.0.1, 1.0.1.0
Dependencies base (>4.3 && <5), QuickCheck (>=2.12 && <2.15) [details]
License GPL-3.0-only
Copyright (c) Jorge Santiago Alvarez Cuadros
Author Jorge Santiago Alvarez Cuadros
Maintainer sanjorgek@ciencias.unam.mx
Category Testing
Home page https://github.com/sanjorgek/QuickCheckVariant
Bug tracker https://github.com/sanjorgek/QuickCheckVariant/issues
Source repo head: git clone git@github.com:sanjorgek/QuickCheckVariant.git
Uploaded by sanjorgek at 2021-10-22T23:09:34Z
Distributions
Reverse Dependencies 1 direct, 1 indirect [details]
Downloads 5815 total (22 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2021-10-23 [all 1 reports]

Readme for QuickCheckVariant-1.0.1.0

[back to package description]

QuickCheckVariant

Generator of "valid" and "invalid" data in a type class

QuickCheckVariant pipeline status

For example, if you created

data Person = Anonymous { getId::String } | Client { getUsername::String, getName::String, getEmail::String} deriving(Show,Eq)

We can provide means to generate valid and invalid data, like:

instance Variant Person where
  valid = do
    id <- alternative
    username <- alternative
    name <- alternative
    domain <- alternative
    ext <- alternative
    (oneof . return) [Anonymous id, Client username name (username++"@"++domain++ext)]
  invalid = do
    username <- alternative
    name <- alternative
    return $ Client username name ""

See this post for more details

More badges

QuickCheckVariant

forthebadge

forthebadge

forthebadge

forthebadge