hedgehog.state

Type members

Classlikes

trait Action[S]

An instantiation of a 'Command' which can be executed, and its effect evaluated.

An instantiation of a 'Command' which can be executed, and its effect evaluated.

Companion:
object
object Action
Companion:
class
trait Command[S, I, O] extends CommandIO[S]

The specification for the expected behaviour of an Action.

The specification for the expected behaviour of an Action.

trait CommandIO[S]

Capture the Input and Output variables from Command existentially.

Capture the Input and Output variables from Command existentially.

FIXME If we can make the rest of the code play nicely with path-dependent types then we can remove this.

case class Context[S](state: S, vars: SortedSet[Name])
Companion:
object
object Context
Companion:
class
case class Environment(value: Map[Name, Any])

A mapping of symbolic values to concrete values.

A mapping of symbolic values to concrete values.

sealed trait EnvironmentError extends Exception
Companion:
object
Companion:
class
sealed trait ExecutionError extends Exception
Companion:
object
Companion:
class
case class Name(value: Int)

Symbolic variable names.

Symbolic variable names.

Companion:
object
object Name
Companion:
class
case class Parallel[S](prefix: List[Action[S]], branch1: List[Action[S]], branch2: List[Action[S]])

A sequential prefix of actions to execute, with two branches to execute in parallel.

A sequential prefix of actions to execute, with two branches to execute in parallel.

object Runner
case class Var[A]

Variables are the symbolic representation of executing an action. To lookup the actual result of an action you require an Environment, which is only accessible at specific stages of testing.

Variables are the symbolic representation of executing an action. To lookup the actual result of an action you require an Environment, which is only accessible at specific stages of testing.

The constructor is hidden to avoid users accidentally creating their own.

Companion:
object
object Var
Companion:
class

Value members

Concrete methods

def parallel[S](prefixN: Range[Int], parallelN: Range[Int], initial: S, commands: List[CommandIO[S]], cleanup: () => Unit)(implicit E: ExecutionContext): Property
def sequential[S](range: Range[Int], initial: S, commands: List[CommandIO[S]], cleanup: () => Unit): Property