Popularity
7.2
Growing
Activity
0.0
Stable
6
7
9

Monthly Downloads: 15
Programming language: Haskell
License: BSD 3-clause "New" or "Revised" License
Tags: Testing     QuickCheck    
Latest version: v0.2.1.0

quickcheck-arbitrary-template alternatives and similar packages

Based on the "quickcheck" category.
Alternatively, view quickcheck-arbitrary-template alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of quickcheck-arbitrary-template or a related project?

Add another 'quickcheck' Package

README

quickcheck-arbitrary-template

Test.QuickCheck.TH.GeneratorsSpec

contains one routine: makeArbitrary

Which builds, a generator that can be used to create an arbitrary instance.

It does not create the instance directly for you.

It supports creating sum types and record types each constructor may have at most 7 arguments.

Installation

stack build

Usage

An example (from the tests)

{-# LANGUAGE TemplateHaskell #-}
module Test.QuickCheck.TH.GeneratorsSpec (tests) where

import Test.QuickCheck.TH.Generators

import Test.Tasty
import Test.Tasty.QuickCheck as QC
import Test.Tasty.HUnit

import Data.List
import Data.Ord



-- | These example types should build arbitrary instances correctly 

data ExampleSumTypes = ExampleSum0 
                    | ExampleSum1 Int
                    | ExampleSum2 Int Int
                    | ExampleSum3 Int Int Int
                    | ExampleSum4 Int Int Int Int
                    | ExampleSum5  Int Int Int Int Int
                    | ExampleSum6 Int Int Int Int Int Int
                    | ExampleSum7 Int Int Int Int Int Int
 deriving (Show,Ord,Eq)

makeArbitrary ''ExampleSumTypes


instance Arbitrary ExampleSumTypes where
  arbitrary = arbitraryExampleSumTypes

tests :: TestTree
tests = testGroup "Tests" [properties]

properties :: TestTree
properties = testGroup "Properties" [qcProps]

qcProps = testGroup "(checked by QuickCheck)"
  [ QC.testProperty "sort == sort . reverse" (
       \list -> sort (list :: [ExampleSumTypes]) == sort (reverse list)) ]

How to run tests

stack test quickcheck-arbitrary-template