Skip to content

API reference ​

Generated by reflection (docs/scripts/reflect-api.php) over all three packages' src/, not written by hand — every signature, parameter and default value here is read straight from the code, not transcribed from it. Only @api-annotated types get a page; @internal classes are implementation detail and stay undocumented on purpose.

Core ​

TypeKindSummary
ArrayArbitraryclassGenerates lists whose elements come from a delegate arbitrary and shrinks them by length toward…
BoolArbitraryclassGenerates booleans.
BytesArbitraryclassGenerates raw byte strings (every byte 0..255, not printable text) and shrinks them by length…
CharsetStringArbitraryclassGenerates strings whose characters come from a fixed alphabet, and shrinks them by length toward…
ClassArbitraryclassInstances of a class, generated from what its constructor already declares.
CommandSequenceArbitraryclassGenerates valid Command sequences for stateful / model-based testing and shrinks them by dropping…
CompositeArbitraryclassA value built by a body that draws several dependent values through a Draw, shrinking the draws…
ConstantArbitraryclassAlways produces the same fixed value.
DateTimeArbitraryclassGenerates UTC DateTimeImmutable values with microsecond precision, drawn uniformly from an…
DictionaryArbitraryclassGenerates associative arrays (maps) whose keys come from a key arbitrary and whose values come…
DrawnEngineclassA Random\Engine whose output is drawn from the property's own replay tape: every generate() is…
EdgeCasedArbitraryclassA delegate arbitrary with author-supplied boundary values: one draw in self::BIAS_DENOMINATOR is…
FilteredArbitraryclassGenerates values from a delegate arbitrary, retrying until a predicate holds.
FlatMappedArbitraryclassDependent generators (monadic bind): each value produced by the source arbitrary is fed into a…
FloatArbitraryclassGenerates floats in the half-open range [min, max).
FrequencyArbitraryclassWeighted choice among several arbitraries: each [weight, arbitrary] pair is picked with…
IntArbitraryclassGenerates integers within an inclusive range and shrinks them toward zero (clamped into the range,…
MappedArbitraryclassTransforms each value produced by a delegate arbitrary through a pure function.
NullableArbitraryclassWraps another arbitrary and additionally yields null with roughly even odds.
OneOfArbitraryclassPicks a value uniformly at random from a fixed set.
RandomEngineArbitraryclassYields a DrawnEngine.
RecordArbitraryclassFixed-shape associative array: produces a map with one value per named field, each drawn from that…
StringArbitraryclassGenerates random strings and shrinks them by length toward the empty string, then…
SubsetArbitraryclassGenerates subsets of a fixed ordered set: every result is a list of distinct elements of the…
SwarmArbitraryclassSwarm testing over a choice generator: every generated case may only use some of the variants,…
TupleArbitraryclassFixed-arity tuple: produces a list with one value per element arbitrary, in order.
UniqueArrayArbitraryclassGenerates lists of pairwise-distinct elements drawn from a delegate arbitrary, and shrinks them by…
UuidArbitraryclassGenerates RFC 4122 version 4 (random) UUID strings in the canonical…
ArbitraryInterfaceinterfaceDescribes a space of random values with integrated shrinking.
AssumeclassDiscard a property run when a precondition does not hold.
AssumptionSkippedclassThrown by Assume::that() to discard the current property run without counting it as a failure or a…
ClassifyclassRecords distribution labels for the current property run so the runner can report how often each…
CounterExampleclassMinimal failing input for a property, captured at falsification time.
CoverageViolationExceptionclassThrown (as the failure of an otherwise passing property) when a coverage requirement registered…
DeadlineExceededExceptionclassThrown (as the failure of a property) when a single run's body takes longer than the…
DrawclassThe draw seam a Gen::composite() body receives: every value the body needs comes through draw(),…
EnumerableinterfaceA generator whose whole domain can be counted and walked — the seam the exhaustive mode of…
CorpusFailedclassThe corpus threw — a Redis server that refused the connection, a database that could not be…
CorpusPrunedclassA recorded entry no longer fails and was removed from the corpus.
CorpusReplayedclassA recorded regression entry is about to replay before the random phase.
CorpusStoredclassA falsification's minimised counterexample was recorded in the corpus.
ExampleFinishedclassAn explicit example finished.
ExampleStartedclassAn explicit example is about to execute, before the random phase.
PropertyEventinterfaceMarker for the engine's lifecycle events.
PropertyFinishedclassThe property finished.
PropertyStartedclassThe property is about to run: examples first, then corpus replay, then the random phase.
RunDiscardedclassA random-phase attempt was discarded — neither a failure nor a successful check.
RunFailedclassA random-phase attempt falsified the property; shrinking follows.
RunPassedclassA random-phase attempt completed without failing.
RunStartedclassA random-phase attempt is about to execute the property body.
ShrinkAcceptedclassA shrink candidate still failed and became the new current counterexample.
ShrinkTriedclassOne shrink trial executed the body with a smaller candidate for a single parameter (or draw#N…
TargetImprovedclassA passing run scored better on a Target label than any before it — in…
ExampleViolationExceptionclassReported when an explicit example (a fixed input declared via the property's Examples method)…
GaveUpExceptionclassThrown (as the failure of a property) when discarded inputs — or runs the environment refused —…
GenclassFacade with static factories for the built-in ArbitraryInterfaces.
GenerationExhaustedExceptionclassThrown when a bounded-attempt generator cannot produce a value that satisfies its constraint…
PathViolationExceptionclassReported when a run pinned to a shrink path cannot follow it: the candidate a step names is gone,…
PropertyIdclassWhat a property's id has to be good for, and how to tell when it is not.
PropertyListenerinterfaceObserver of a property run's lifecycle events.
PropertyTestingExceptioninterfaceMarker for every exception this engine reports, so a caller can catch the package as a whole…
PropertyViolationExceptionclassReported when a property is falsified.
RandomclassSeedable, deterministic pseudo-random number generator.
RegressionViolationExceptionclassReported when a recorded regression fails again: the minimised input of an earlier failure,…
CallableTrialExecutorclassThe standalone executor: a plain callback is the property body.
ClockinterfaceMonotonic time source behind the per-run deadline and the phase budget.
CorpusinterfacePersistent store of past falsifications, replayed before the random phase.
CorpusEntryclassOne recorded regression in a property's corpus: either the minimised failing input itself (a…
CorpusFactoryclassThe corpus a PROPERTY_DB value names.
CoverageFailedclassEvery run passed, but a Classify::cover() requirement was under-covered — the pass is…
DeadlineExceededclassA single run (random, example or regression replay) took longer than the per-run deadline.
DistributionReportclassWhat the random phase actually generated, as data: every Classify label…
EdgeCasesenumWhether the numeric generators keep biasing toward their boundary values.
EnvironmentOverridesclassThe values of the PROPERTY_* environment variables, parsed.
ExampleFailedclassAn explicit example failed before the random phase.
FalsifiedclassA random run falsified the property; the counterexample is shrunk.
FilesystemCorpusclassOpt-in on-disk corpus of a property's past failures, replayed before the random phase so a fixed…
GaveUpclassDiscarded inputs — or runs the environment refused — exceeded their budget before the requested…
GenerationFailedclassA generator could not produce a valid value (e.g.
LabelShareclassHow often one Classify label occurred, together with the…
MonotonicClockclassThe default Clock: hrtime(), monotonic and immune to a wall-clock adjustment mid-run.
PassedclassEvery check completed and every coverage requirement held.
PathFailedclassA run pinned to a shrink path found its falsification but could not follow the recorded descent.
PhaseenumThe stages of one property run, as an explicit set rather than a fixed sequence.
PropertyConfigclassResolved knobs of one property run.
PropertyDefinitionclassOne property, fully resolved for the engine: no attribute, no reflection, no environment.
PropertyResultinterfaceStructured outcome of a property run.
PropertyRunnerclassThe framework-agnostic property engine: runs the explicit examples, replays the regression corpus,…
CorpusClientinterfaceThe two operations Runner\RedisCorpus needs from a Redis client, and…
LazyPhpRedisCorpusClientclassA PhpRedisCorpusClient that connects on first use.
PhpRedisCorpusClientclassCorpusClient over the ext-redis client (\Redis).
PredisCorpusClientclassCorpusClient over predis.
RedisDsnclassredis://host[:port][/db][?prefix=key-prefix&timeout=seconds] (or rediss:// for TLS), taken apart.
RedisCorpusclassA Corpus in Redis, so one falsification is replayed everywhere.
RegressionFailedclassA recorded regression (a values corpus entry) failed again on replay.
RunStatisticsclassCounters of a random phase, carried by the results whose reporting needs them: the classification…
SearchCorpusinterfaceThe adaptive example database behind targeted search: the best-scoring inputs of every…
SearchReportclassWhat the targeted search of a run amounted to, as data: how many bodies the search phase executed…
ShrinkModeenumHow hard the runner works to minimise a counterexample.
TargetDirectionenumWhich way a Target label is pushed.
TargetOutcomeclassWhat the search did for one Target label.
TimeBudgetExceededclassThe whole random phase overran its wall-clock budget before the requested checks completed.
TrialExecutorinterfaceExecutes the property body once with the given arguments.
TrialOutcomeclassResult of executing the property body once, in the engine's terms.
ShrinkableclassA generated value together with a lazy tree of progressively "smaller" variants of it — the unit…
CommandinterfaceA single operation in a stateful / model-based test.
CommandSequenceclassA generated, valid-by-construction sequence of Commands together with the initial model it was…
InvariantclassMarks a public method of a rule-based machine as an invariant: it runs before the first step and…
PostconditionViolationExceptionclassThrown by StateMachine::check() when a command's Command::postCondition() returns false.
PreconditionclassNames the guard of a Rule: a public method of the machine returning bool, evaluated against the…
RuleclassMarks a public method of a rule-based machine as one step the generated sequence may take.
RuleSequenceclassA generated sequence of RuleSteps over a rule-based machine — what…
RuleStepclassOne step of a rule-based sequence: a Rule method and the arguments drawn for it.
StateMachineclassDrives a CommandSequence against a fresh system under test for stateful / model-based testing.
SwarmableinterfaceA generator that picks among a fixed, countable set of variants and can hand back a copy of itself…
TargetclassReports a score the engine should push toward an extreme: a delay, a recursion depth, a queue…
TimeBudgetExceededExceptionclassThrown (as the failure of a property) when the random phase's wall-clock time exceeds the…
ValueRendererclassRenders an arbitrary value into a compact, human-readable string for counterexample reporting.

Testo adapter ​

TypeKindSummary
PropertyclassMarks a test method as a property: the PropertyInterceptor takes over, generating random arguments…
PropertyInterceptorclassThe Testo adapter for a Property: resolves the test framework's conventions — the attribute, the…

PHPUnit adapter ​

TypeKindSummary
PropertyCheckclassFluent builder mapping the engine's structured PropertyResult onto PHPUnit: a pass counts one…
PropertyTestingtraitThe fluent entry point a PHPUnit TestCase mixes in: