SchemataBuilder

Build scheman from the fragments.

TODO: optimize the implementation. A lot of redundant memory allocations etc.

Conservative to only allow up to <user defined> mutants per schemata but it reduces the chance that one failing schemata is "fatal", loosing too many muntats.

Members

Functions

empty
bool empty()
Undocumented in source. Be warned that the author may not have intended to support it.
isDone
bool isDone()
Undocumented in source. Be warned that the author may not have intended to support it.
next
Optional!ET next()

Merge schemata fragments to schemas. A schemata from this pass may may contain multiple mutation kinds and span over multiple files.

put
void put(Fragment[] fragments)

Merge analyze fragments into larger schemata fragments. If a schemata fragment is large enough it is converted to a schemata. Otherwise kept for pass2.

restart
void restart()
Undocumented in source. Be warned that the author may not have intended to support it.
stats
auto stats()
Undocumented in source. Be warned that the author may not have intended to support it.

Structs

ET
struct ET
Undocumented in source.
Fragment
struct Fragment
Undocumented in source.
SchemataFragment
struct SchemataFragment
Undocumented in source.

Variables

cacheSize
size_t cacheSize;

Size in bytes of the cache of fragments.

current
Vector!Fragment current;
Undocumented in source.
discardMinScheman
bool discardMinScheman;
Undocumented in source.
minMutantsPerSchema
long minMutantsPerSchema;

Minimal mutants that a schema must contain for it to be valid.

mutantsPerSchema
long mutantsPerSchema;

Max mutants per schema.

rest
Vector!Fragment rest;
Undocumented in source.
schemaQ
SchemaQ schemaQ;

Controls the probability that a mutant is part of the currently generating schema.

thresholdStartValue
double thresholdStartValue;

The threshold start at this value.

useProbability
bool useProbability;

use probability for if a mutant is injected or not

useProbablitySmallSize
bool useProbablitySmallSize;

if the probability should also influence if the scheam is smaller.

Meta