The project follows semantic versioning. BC
stands for an change that impacts Backward Compatibility
.
- Allowing use outside of PHPUnit through
Eris\Facade
. - Fixed bug:
suchThat()
fails to generated good values when all those from generator size 0 are exclude (#100). - PHPUnit 7.x support (#112, #113).
- BC: dropped the deprecated
Shrinker\Random
. - BC: dropped the unused
Generator::contains()
.
- Using new
multiple
deterministic shrinking instead ofrandom
, being abandoned (#87). - Supporting PHPUnit 6.x (#96).
- Supporting PHP 7.1 (#97).
- Added
Listener::onAttempt()
- Fixed bug:
pos()
andneg()
can shrink to0
(#96). - Fixed bug: denominator in float generation can be 0 (#92).
- Fixed bug: shrinking of date generation uses wrong operator precedence (#94).
- Fixed bug: reproducible PHPUnit commands are not escaped correctly if they contain namespaced classes.
- Added CONTRIBUTORS
- BC:
minimumEvaluationRatio
is now a method to be called, not a private field. Defaults to 0.5. - BC:
GeneratedValue
is now an interface and not a class. - BC: extended
Listener::endPropertyVerification()
with additional parameters$iterations
and optional$exception
.
- Updated dependency on
icomefromthenet/reverse-regex
to solve warnings on PHP 7. bind
Generator.- Default string dump for
Listener\collectFrequencies()
. - Optionally logging generations with
hook(Listener\log($filename))
. disableShrinking()
option.limitTo()
accepts aDateInterval
too.- Configurability of randomness: choice between
rand
,mt_rand
, and a pure PHP Mersenne Twister. suchThat
Generator accepts PHPUnit constraints likewhen()
.Generator\constant()
utility function.- Fixed bug of size not being fully explored due to slow growth.
- Switched to PSR-2 coding standards and PSR-4 autoloading.
- BC:
frequency
generator only accepts variadics args, not an array anymore. - BC: removed
strictlyPos
andstrictlyNeg
Generators as duplicated ofpos
andneg
ones. - BC: removed
andAlso
,theCondition
,andTheCondition
,implies
,imply
aliases which no one uses. Addedand
for multiple preconditions.
associative
,map
,subSet
,suchThat
Generators.- Optionally limiting the number of generations with
limitTo()
. - Optionally collecting generated data with
hook(Listener\collectFrequencies())
. - Support for listeners with
startPropertyVerification
,newGeneration
andendPropertyVerification
events. - BC: changed Generators API to use
GeneratedValue
objects. - BC: requiring PHP 5.5 or newer.
- BC: dropped array single parameter in
forAll()
.
- PHP 7 compatibility.
- Renaming all Generator classes to *Generator.
- Generators are now based on size, an increasing random parameter.
choose()
new Generator to get integers inside a fixed range.- PHPUnit 5.x is supported.
set
new Generator.- Differentiating
pos
,nat
,neg
Generators. - GeneratorSampleTest to get sample output from Generators.
- Showing generated input with
ERIS_ORIGINAL_INPUT=1
. names
anddate
(DateTime) new Generators.tuple
Generator supports variadic arguments.- Shrinking respects
when()
clauses. - Dates and sorting examples.
forAll()
accepts multiple arguments instead of an array.byte
Generator.
frequency
andoneOf
Generators that combine other Generators.sequence
Generator for lists of constant type and variable size.char
Generators withprintableCharacter
Antecedent.int
,pos
,neg
andfloat
Generators.regex
Generator to build strings satisfying a regular expression.- Shrinking respects an optional maximum time limit (
$this->shrinkingtimeLimit
).
- Generators now use the Generator\nat(...) syntax.
- Added
bool
,constant
,elements
,string
,tuple
Generators. - Improved shrinking by performing it on all involved Generators.
- Reproducibility with ERIS_SEED.
forAll()
andthen()
syntax.natural
andvector
Generators.when()
for constraints.- Basic best-effort shrinking.
sample()
andsampleShrink()
for Generators.