The generators the conformance properties draw from. A world-shaped generator takes the world module, or a population, and reaches the module through the struct. It asks that module what terms its rule uses. The unknown operations, kinds, and subjects that the port must always deny are the same for every world.
Summary
Functions
An object the population holds.
An operation the world's rule knows.
A known subject, one of an unknown kind, and one the population does not know, for deny by default.
A subject with a fresh id.
A subject the population knows, of any kind the port knows.
A subject of a kind the port does not know.
An operation no rule knows.
A subject the population does not know.
A population of the world module.
Functions
@spec object(Mediate.Conformance.World.t()) :: StreamData.t(Mediate.object())
An object the population holds.
@spec operation(module()) :: StreamData.t(atom())
An operation the world's rule knows.
@spec strangers(Mediate.Conformance.World.t()) :: StreamData.t(%{ subject: Mediate.subject(), stranger: Mediate.subject(), nobody: Mediate.subject() })
A known subject, one of an unknown kind, and one the population does not know, for deny by default.
@spec subject() :: StreamData.t(Mediate.subject())
A subject with a fresh id.
@spec subject(Mediate.Conformance.World.t()) :: StreamData.t(Mediate.subject())
A subject the population knows, of any kind the port knows.
@spec unknown_kind_subject(Mediate.Conformance.World.t()) :: StreamData.t(Mediate.subject())
A subject of a kind the port does not know.
@spec unknown_operation() :: StreamData.t(atom())
An operation no rule knows.
@spec unknown_subject() :: StreamData.t(Mediate.subject())
A subject the population does not know.
@spec world(module()) :: StreamData.t(Mediate.Conformance.World.t())
A population of the world module.