fake: Randomly generated fake data

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain]

QuickCheck generates completely random data for the purposes of test and catching corner cases. The fake package provides tools for generating data that looks plausibly real.


[Skip to ReadMe]

Properties

Versions0.1, 0.1.1, 0.1.1, 0.1.1.1
Change logChangeLog.md
Dependenciesbase (>=4.6 && <4.12), containers (==0.5.*), generics-sop (>=0.2 && <0.4), random (==1.1.*), text (==1.2.*), time (>=1.4 && <1.10) [details]
LicenseBSD-3-Clause
CopyrightDoug Beardsley, Formation Inc.
AuthorDoug Beardsley
Maintainermightybyte@gmail.com
CategoryData
Home pagehttps://github.com/mightybyte/fake
Bug trackerhttps://github.com/mightybyte/fake/issues
Source repositoryhead: git clone https://github.com/mightybyte/fake.git
UploadedWed Apr 18 19:50:12 UTC 2018 by DougBeardsley

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees


Readme for fake-0.1.1

[back to package description]

Fake

Build Status

Fake is a Haskell package for generating realistic-looking fake data.

Overview

The package has three main components:

  1. Analogs to QuickCheck's Arbitrary and Gen that use realistic probability distributions rather than the more uniform distributions used by QuickCheck.
  2. A generic coverage function that generates full constructor coverage over a data type.
  3. A suite of providers for common types of data such as names, addresses, phone numbers, ID numbers, etc.

Fake's gcover function is particularly useful with the armor package for ensuring that all constructors of your data types are tested for backwards compatible serializations without having to write all the values yourself. This allows you to get higher confidence that you have covered most of the important cases without the combinatorial explosion of exhaustive testing.

Credits

Original inspiration came from the production needs of Formation (previously Takt).

Providers and other details were inspired by similar packages in Python and Ruby.