quickcheck-special-0.1.0.6: 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 Source #

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

Constructors

Special 

Fields

Instances

Functor Special Source # 

Methods

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

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

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

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) Source # 

Methods

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

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

Integral a => Integral (Special a) Source # 

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) Source # 

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) Source # 

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) Source # 
Real a => Real (Special a) Source # 

Methods

toRational :: Special a -> Rational #

Show a => Show (Special a) Source # 

Methods

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

show :: Special a -> String #

showList :: [Special a] -> ShowS #

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

Methods

arbitrary :: Gen (Special a) #

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

CoArbitrary a => CoArbitrary (Special a) Source # 

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)] #