quickcheck-special-0.1.0.5: Edge cases and special values for QuickCheck Arbitrary instances

CopyrightDaniel Mendler (c) 2016
LicenseMIT (see the file LICENSE)
Maintainermail@daniel-mendler.de
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Test.QuickCheck.Special

Description

The standard Arbitrary instances don't generate special values. This is fixed by this package which provides the newtype Special with an Arbitrary instance. The special values are given by the SpecialValues typeclass.

Synopsis

Documentation

newtype Special a #

Additionally to the standard Arbitrary instances, this generates special values with a small probability.

Constructors

Special 

Fields

Instances

Functor Special # 

Methods

fmap :: (a -> b) -> Special a -> Special b #

(<$) :: a -> Special b -> Special a #

Bounded a => Bounded (Special a) # 
Enum a => Enum (Special a) # 

Methods

succ :: Special a -> Special a #

pred :: Special a -> Special a #

toEnum :: Int -> Special a #

fromEnum :: Special a -> Int #

enumFrom :: Special a -> [Special a] #

enumFromThen :: Special a -> Special a -> [Special a] #

enumFromTo :: Special a -> Special a -> [Special a] #

enumFromThenTo :: Special a -> Special a -> Special a -> [Special a] #

Eq a => Eq (Special a) # 

Methods

(==) :: Special a -> Special a -> Bool #

(/=) :: Special a -> Special a -> Bool #

Integral a => Integral (Special a) # 

Methods

quot :: Special a -> Special a -> Special a #

rem :: Special a -> Special a -> Special a #

div :: Special a -> Special a -> Special a #

mod :: Special a -> Special a -> Special a #

quotRem :: Special a -> Special a -> (Special a, Special a) #

divMod :: Special a -> Special a -> (Special a, Special a) #

toInteger :: Special a -> Integer #

Num a => Num (Special a) # 

Methods

(+) :: Special a -> Special a -> Special a #

(-) :: Special a -> Special a -> Special a #

(*) :: Special a -> Special a -> Special a #

negate :: Special a -> Special a #

abs :: Special a -> Special a #

signum :: Special a -> Special a #

fromInteger :: Integer -> Special a #

Ord a => Ord (Special a) # 

Methods

compare :: Special a -> Special a -> Ordering #

(<) :: Special a -> Special a -> Bool #

(<=) :: Special a -> Special a -> Bool #

(>) :: Special a -> Special a -> Bool #

(>=) :: Special a -> Special a -> Bool #

max :: Special a -> Special a -> Special a #

min :: Special a -> Special a -> Special a #

Read a => Read (Special a) # 
Real a => Real (Special a) # 

Methods

toRational :: Special a -> Rational #

Show a => Show (Special a) # 

Methods

showsPrec :: Int -> Special a -> ShowS #

show :: Special a -> String #

showList :: [Special a] -> ShowS #

(Arbitrary a, SpecialValues a) => Arbitrary (Special a) # 

Methods

arbitrary :: Gen (Special a) #

shrink :: Special a -> [Special a] #

CoArbitrary a => CoArbitrary (Special a) # 

Methods

coarbitrary :: Special a -> Gen b -> Gen b #

class SpecialValues a where #

Provides a list of special values or edge cases

Minimal complete definition

specialValues

Methods

specialValues :: [a] #

Finite list of special values

Instances

SpecialValues Bool # 

Methods

specialValues :: [Bool] #

SpecialValues Char # 

Methods

specialValues :: [Char] #

SpecialValues Double # 

Methods

specialValues :: [Double] #

SpecialValues Float # 

Methods

specialValues :: [Float] #

SpecialValues Int # 

Methods

specialValues :: [Int] #

SpecialValues Int8 # 

Methods

specialValues :: [Int8] #

SpecialValues Int16 # 

Methods

specialValues :: [Int16] #

SpecialValues Int32 # 

Methods

specialValues :: [Int32] #

SpecialValues Int64 # 

Methods

specialValues :: [Int64] #

SpecialValues Integer # 

Methods

specialValues :: [Integer] #

SpecialValues Rational # 
SpecialValues Word # 

Methods

specialValues :: [Word] #

SpecialValues Word8 # 

Methods

specialValues :: [Word8] #

SpecialValues Word16 # 

Methods

specialValues :: [Word16] #

SpecialValues Word32 # 

Methods

specialValues :: [Word32] #

SpecialValues Word64 # 

Methods

specialValues :: [Word64] #

SpecialValues () # 

Methods

specialValues :: [()] #

SpecialValues Natural # 

Methods

specialValues :: [Natural] #

SpecialValues ByteString # 
SpecialValues ByteString # 
SpecialValues Scientific # 
SpecialValues Text # 

Methods

specialValues :: [Text] #

SpecialValues Text # 

Methods

specialValues :: [Text] #

SpecialValues a => SpecialValues [a] # 

Methods

specialValues :: [[a]] #

SpecialValues a => SpecialValues (Maybe a) # 

Methods

specialValues :: [Maybe a] #

(SpecialValues a, SpecialValues b) => SpecialValues (Either a b) # 

Methods

specialValues :: [Either a b] #

(SpecialValues a, SpecialValues b) => SpecialValues (a, b) # 

Methods

specialValues :: [(a, b)] #