Add auto-skip after time limit option for runners
- (PR#354) Doc: Add examples of issues discovered using fast-check
- (PR#353) Doc: Better logo
- (PR#351) Size: Add dependency to tslib - should reduce size of the bundle
- (PR#349) Test: No regression snapshot tests
New generated documentation and new arbitraries
- (PR#339) Add
fc.ipV4()
andfc.ipV6()
arbitraries - (PR#340) Add
fc.mapToConstant()
arbitrary - (PR#344) Add
fc.webUrl()
and other web urls related arbitraries - (PR#345) Add
fc.emailAddress()
arbitrary
- (PR#343) Doc: Generate the API documentation with docsify
Remove dependency to lorem-ipsum and more control over fc.anything
and fc.object
- (PR#336) Remove dependency to lorem-ipsum
- (PR#337)
fc.frequency()
should be compatible with legacy node - (PR#338) Add parameter to customize size of
fc.object()
andfc.anything()
Lighter bundle
- (PR#327) Doc: Ability to copy-paste snippets in HandsOnPropertyBased.md
- (PR#334) Size: Reduce the size of the bundle - Potential issue if your code directly references TupleArbitrary<T1...>, it should be replaced by Arbitrary<[T1,...]>
Better balance between values produced by fc.anything()
- (PR#325) Better balance between values produced by
fc.anything()
Replay ability for commands and new arbitraries
- (PR#321) Add new flags for
fc.anything
andfc.object
:withBoxedValues
,withSet
,withMap
- (PR#320) Better string representation of failing values
- (PR#317) Add
fc.dedup
arbitrary - (PR#294) Replay ability for commands
- (PR#292) Flag to stop the test as soon as it fails
- (PR#288) Add
fc.maxSafeInteger
andfc.maxSafeNat
arbitraries
- (PR#295) Bug: Not shrinking commands themselves
- (PR#290) Bug: ExecutionStatus defined as const enum
- (PR#298) Clean: Factorize code of Runner
- (PR#297) Clean: Takkle issues reported by codeclimate
- (PR#306) Doc: Add issues discovered by fast-check
- (PR#287) Doc: Add issues discovered by fast-check
- (PR#322) Doc: Links next to features described in Readme
- (PR#309) Test: Factorize Jest configurations
- (PR#307) Test: Ensure web-build is correct
- (PR#300) Perf: No more holey array in
fc.array
Fix browser bundle
- (ISSUE#304) Fix browser bundle
Better shrinking of commands
- (PR#280) Better shrinking of commands
Fix browser bundle
- (ISSUE#304) Fix browser bundle
Adapt typings for older versions of TypeScript
VerbosityLevel enum is accessible through fc.VerbosityLevel
- (PR#278) Bug: VerbosityLevel values not accessible
BigInt support and new verbosity level
- (PR#274) Add support for asynchronous check method in AsyncCommand
- (PR#271) More verbose option
- (PR#268) Add
bigInt
,bigIntN
,bigUint
,bigUintN
arbitraries - (PR#263) Default seed based on random in addition of timestamp
- (PR#272) Bug: Commands partially cloned during the shrinking process
- (PR#264) Bug: Non-integer seeds not using the full range of integers
- (PR#269) Clean: Migrate tests to Jest
- (PR#276) Clean: Unecessary try catch removed for
modelRun
Fix regression introduced in the shrinking of cloneable
- (PR#262) Bug: Too many shrinks for
commands
- (PR#261) Bug: Unability to shrink mapped
commands
- (PR#259) Bug: Move cloning responsability at a single place in the code
- (PR#258) Bug: Shrinker of commands failed to shrink twice (in depth)
Support asynchronous model setup
- (PR#249) Bug:
asyncModelRun
must accept asynchonous setup function
Native handling of stateful generated values
- (PR#245)
seed
can be any possibledouble
value - (PR#229) Add
context
arbitrary - (PR#237) Add
infiniteStream
arbitrary - (PR#229) Add cloneable capabilities for stateful generated values
- (PR#241) Doc: Add an example for
asyncProperty
- (PR#238) Better logs for
fc.func
,fc.compareFunc
andfc.compareBooleanFunc
- (PR#235) Better handling of
fc.commands
Fix import of loremIpsum library
- (PR#226) Fix import of loremIpsum library
Switch to another PRNG for better performances, better fc.commands
- (PR#221) Better shrink capabilities for
fc.commands
- (PR#220) Switch to another PRNG as default random - more performances
- (PR#217) Better typings for
fc.record
Performance improvements
- (PR#215) Fix deopt in Stream.join and Random.uniformIn
- (PR#211) Remove costly spread operator in ArrayArbitrary
- (PR#210) Reduce the number of closures in Stream
- (PR#209) Bump to
pure-rand@1.4.2
: improvements on mersenne twister - (PR#208) Bump to
pure-rand@1.4.1
: destructuring was too costly
Performance improvements
- (PR#207) Performance improvements done on
pure-rand
side
ESM version of the package published to npm, arbitraries to generate functions and more settings to be able to tweak the execution
- (PR#201) Add
compareBooleanFunc
,compareFunc
andfunc
arbitraries - (PR#200) Parameter
randomType
to choose the random generator - (PR#202) Property hooks for
beforeEach
andafterEach
- (PR#196) Publish both cjs and esm versions of the package
Property based test state machine: UI, automata.
Addition of subarray
and shuffledSubarray
arbitraries
- (PR#177) Add
subarray
andshuffledSubarray
arbitraries - (PR#157) Model based testing and commands
- (PR#158) Characters shrink towards printable ascii
- (PR#170) Fix:
fullUnicode
andfullUnicodeString
were failing on old releases of node - (PR#178) Doc: Update typedoc
- (PR#161) Doc: Suggest bundle.run instead of jsdelivr
Suggest custom test values with examples
- (PR#148) Manually add concrete examples to test
- (PR#153) Edit npm project description
- (PR#152) Add minimal supported node engine version in package.json
- (PR#149) Bump npm dependencies
Filter invalid values directly in predicates using fc.pre
- (PR#140) Make seed and path copy pasteable
- (PR#138) Remove core-js, no more global namespace pollution
- (PR#118) Enable preconditions in predicate
Reduce package footprint and less restrictive API for oneof
/frequency
- (PR#135) Do not force explicitly one parameter in
oneof
/frequency
- (PR#134) Doc: Typos in README
- (PR#132) Add missing exports for
jsonObject
andunicodeJsonObject
- (PR#131) Reduce package size
- (PR#130) Doc: Examples for generation of recursive structures
Less restrictive API for constantFrom
- (PR#123) Do not force explicitly one parameter in
constantFrom
Readme update
Built-in chaining of arbitraries
- (PR#103) Use the output of arbitraries to produce other ones with
.chain(...)
- (PR#114) Add shrink for
fc.lorem
- (PR#116) Throw exception in case of bad path when trying to replay a failure
Better performance for biased arbitraries (=default)
- (PR#107) Fix: Performance issue when using biased arbitraries
- (743d7619) Fix: Bump to the latest version of
pure-rand
Export missing fc.stringOf
- (63915033) Fix: Export missing
fc.stringOf
Readme update
- (68893e99) Doc: Why should I migrate section? in README.md
- (d779aa9e) Doc: Verbose mode explained in README.md
- (eacc7f0e) Doc: Bug detected using property based testing and fast-check
Ability to use min and max boundaries outside of 32 bits integers for fc.integer
- (b45b90eb) Ability to use min and max boundaries outside of 32 bits integers:
fc.integer(Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER)
Straight to corner cases and verbose mode
- (PR#91) Straight to corner cases by default, see
unbiased
option ofassert
to disable it - (PR#93) Verbose mode on failure to have the list of all failing values encountered, see
verbose
option ofassert
to enable it - (PR#94) Better typings for
fc.record
TypeScript and JavaScript documentation of the code using TypeDoc
- (cc73ab33) Add stringOf arbitrary
- (959fb52b) Doc: Add a Tips section in the Readme
- (0dd1e66a) Doc: Link towards the generated documentation in the Readme
Reduce risk of using an unimplemented method of Node (older releases <6)
- (55ff3ff) Clean: Switch to the latest ES standard to use its implementations
- (ce75e4e) Fix: Safer polyfill for older version of node - rely on core-js
Readme update following removal of depreciated devDependencies
Fix infinite loop when shrinking array having a minimal length defined
- (d6468dc) Fix: shrink an array with minimal length lead to infinite loop
Easier replay of failures
Faster shrinks
No recursion when shrinking
- (7dd6fdb) Add min/max parameters on fc.float and fc.double
- (e294eed) Naming: lower camel case for settings keys
- (6f35cdd) Check inputs provided to fc.property for easier troubleshoot
- (b960938) Naming: rename generic_tuple into genericTuple
- (d1dde51) Faster shrink of arrays (and must of others because built on top of arrays x integers)
- (fc57174) Faster shrink of integers
- (be038f0) Replay a failure by setting seed and path
- (d25d233) Feature counterexamplePath in case of failure
- (c7a1508) Update error message content in case of failure in fc.assert
- (eb0d3c2) Better rendering of strings
- (1e0a73d) Switch to pure-rand library to handle the random number generation
- (56f1e03) Clean: Bump versions of dependencies
- (d0027d7) Clean: Do not throw raw strings but Error
- (6af9e6b) Clean: Remove power-assert from devDependencies
- (fe44db5) Fix: Avoid recursion during shrinking
- (e3ecc3c) Fix: Bad number of shrinks in case of failure (offset by one)
- (79c08f7) Fix: Export dictionary arbitrary
Readme update
- (79fadb2) Update README.md
New arbitraries: constantFrom and record
- (786e16e) Modify default values available for fc.object
- (8984e78) Add flag to generate fc.record with missing keys
- (850158b) Add fc.record Arbitrary
- (262b809) Add fc.constantFrom Arbitrary
- (6db53f2) Clean: Exclude example/ from npm package
- (036cd2f) Doc: Documentation noShrink
- (0ee3a03) Doc: Link towards jsDelivr
Bundled for web-browsers and node
- Add bundle for web-browsers
- Add code examples in the source code
- Add minimal length parameter on all strings arbitraries
- Add es3 support in order to support oldest versions of node
- Add
set
,char16bits
andfullUnicode
arbitraries - Add timeout parameter on asychronous properties
- Fix: unicode character generators
Fix shrink of async properties
- Fix: bug in shrink of async properties
JSON arbitraries and shrinker kill switch
noShrink
method can remove shrink from existing arbitraries- Add
jsonObject
andunicodeJsonObject
arbitraries - Support higher number of arbitraies in tuples and properties
Code and documentation alignment
- Doc: align documentation with code
- Doc: missing parts in the documentation
Going async/await
- Support async/await properties
- Add
frequency
,anything
,object
,json
,dictionary
arbitraries - Accept min and max length on
array
- Clean: Better integration with modern tests frameworks (throw Error not strings)
Force ready to be used version
- Add
option
,float
,double
,boolean
arbitraries - Add function to extract generated values
fc.sample
andfc.statitistics
- Doc: creation of a documentation