IOTasks
Safe HaskellNone

Test.IOTasks.Var

Synopsis

Documentation

type Varname = String Source #

data Var a where Source #

Constructors

IntVar :: Varname -> Var Integer 
BoolVar :: Varname -> Var Bool 
StringVar :: Varname -> Var [Char] 
EmbeddedVar :: forall a1. (Embeddable a1, Show a1, Read a1) => TypeRep a1 -> Varname -> Var (Embedded a1) 

Instances

Instances details
VarExp Var Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

toVarList :: Var a -> [Var a] Source #

GCompare Var Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

gcompare :: Var a -> Var b -> GOrdering a b

GEq Var Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

geq :: Var a -> Var b -> Maybe (a :~: b)

Show (Var a) Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

showsPrec :: Int -> Var a -> ShowS

show :: Var a -> String

showList :: [Var a] -> ShowS

Eq (Var a) Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

(==) :: Var a -> Var a -> Bool

(/=) :: Var a -> Var a -> Bool

Ord (Var a) Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

compare :: Var a -> Var a -> Ordering

(<) :: Var a -> Var a -> Bool

(<=) :: Var a -> Var a -> Bool

(>) :: Var a -> Var a -> Bool

(>=) :: Var a -> Var a -> Bool

max :: Var a -> Var a -> Var a

min :: Var a -> Var a -> Var a

pattern Var :: (Varname, TypeRep a) -> Var a Source #

class Embeddable a where Source #

Values embeddable into a finite set of integers

Laws:

asInteger . asOriginal = id

For types with Eq instances that induce non-trivial equivalence classes, at least the weaker

asOriginal (asInteger x) == x = True

should hold. However program coverage is weakened in such scenarios, as generated inputs will only ever contain values from the co-domain of asOriginal.

Methods

asInteger :: a -> Integer Source #

asOriginal :: Integer -> a Source #

embeddingRange :: [Integer] Source #

data Embedded a where Source #

Constructors

Embedded :: forall a. (Show a, Embeddable a) => Integer -> Embedded a 

Instances

Instances details
(Show a, Read a, Embeddable a) => Read (Embedded a) Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

readsPrec :: Int -> ReadS (Embedded a)

readList :: ReadS [Embedded a]

readPrec :: ReadPrec (Embedded a)

readListPrec :: ReadPrec [Embedded a]

Show a => Show (Embedded a) Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

showsPrec :: Int -> Embedded a -> ShowS

show :: Embedded a -> String

showList :: [Embedded a] -> ShowS

Eq (Embedded a) Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

(==) :: Embedded a -> Embedded a -> Bool

(/=) :: Embedded a -> Embedded a -> Bool

data SomeVar where Source #

Constructors

SomeVar :: forall a. Typeable a => Var a -> SomeVar 

Instances

Instances details
Show SomeVar Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

showsPrec :: Int -> SomeVar -> ShowS

show :: SomeVar -> String

showList :: [SomeVar] -> ShowS

Eq SomeVar Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

(==) :: SomeVar -> SomeVar -> Bool

(/=) :: SomeVar -> SomeVar -> Bool

Ord SomeVar Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

compare :: SomeVar -> SomeVar -> Ordering

(<) :: SomeVar -> SomeVar -> Bool

(<=) :: SomeVar -> SomeVar -> Bool

(>) :: SomeVar -> SomeVar -> Bool

(>=) :: SomeVar -> SomeVar -> Bool

max :: SomeVar -> SomeVar -> SomeVar

min :: SomeVar -> SomeVar -> SomeVar

someVar :: Typeable a => Var a -> SomeVar Source #

withSomeVar :: SomeVar -> (forall a. Typeable a => Var a -> r) -> r Source #

data SomeConsistentVars where Source #

Constructors

SomeConsistentVars :: forall a. Typeable a => [Var a] -> SomeConsistentVars 

withSomeConsistentVars :: SomeConsistentVars -> (forall a. Typeable a => [Var a] -> r) -> r Source #

withConsistentList :: [SomeVar] -> (forall a. Typeable a => [Var a] -> r) -> Maybe r Source #

filterType :: Typeable a => [SomeVar] -> [Var a] Source #

intVar :: Varname -> Var Integer Source #

embeddedVar :: (Typeable a, Embeddable a, Show a, Read a) => Varname -> Var (Embedded a) Source #

varTypeRep :: Var a -> TypeRep a Source #

class VarExp (e :: Type -> Type) where Source #

Abstraction over different types of variable-expressions.

A variable-expression references one or more specification variables and can be used to access the values assigned to these specific variables.

If an expression references more than one variable, the values of these variables are interleaved chronologically. I.e., currentValue will provide access to the current value of the last modified variable from the list and allValues gives a list where values appear in the order they were given to the program.

Additionally, all referenced variables must be of the same type.

Instances need to make sure that the resulting list is sorted!

Methods

toVarList :: e a -> [Var a] Source #

Computes the list of variables referenced by the variable expression.

Instances

Instances details
VarExp MergedVars Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

toVarList :: MergedVars a -> [Var a] Source #

VarExp Var Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

toVarList :: Var a -> [Var a] Source #

data MergedVars a Source #

Instances

Instances details
VarExp MergedVars Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

toVarList :: MergedVars a -> [Var a] Source #

Show (MergedVars a) Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

showsPrec :: Int -> MergedVars a -> ShowS

show :: MergedVars a -> String

showList :: [MergedVars a] -> ShowS

Eq (MergedVars a) Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

(==) :: MergedVars a -> MergedVars a -> Bool

(/=) :: MergedVars a -> MergedVars a -> Bool