- Remove deprecated generator bindings:
QCheck.Gen:big_natneg_intpintsmall_natsmall_intsmall_signed_intint_pos_corners,int_cornersui32ui64pfloatnfloatoptstring_readablesmall_stringsmall_listlist_repeatarray_repeatsmall_arrayoneofloneofafrequencyfrequencylfrequencyashuffle_ashuffle_lshuffle_w_lflatten_lflatten_aflatten_optflatten_res
QCheck.arbitrary:small_natsmall_intsmall_signed_intpos_intneg_int-small_int_cornerspos_floatneg_floatprintable_charnumeral_charstring_gen_of_sizestring_gensmall_stringstring_of_sizeprintable_stringprintable_string_of_sizestring_printable_of_sizesmall_printable_stringstring_small_printablenumeral_stringstring_numeralnumeral_string_of_sizestring_numeral_of_sizebytes_gen_of_sizebytes_of_sizesmall_listlist_of_sizearray_of_sizechooseoneofloneofafrequencyfrequencylfrequencya
QCheck2.Gen:pintsmall_natbig_natneg_intsmall_intsmall_signed_intsmall_int_cornersint_pos_cornersint_cornersui32ui64pfloatnfloatoptsmall_stringsmall_listlist_repeatsmall_arrayarray_repeatoneofloneofafrequencyfrequencylfrequencyashuffle_ashuffle_lshuffle_w_lflatten_lflatten_aflatten_optflatten_res
- Other removed deprecated
QCheck2bindings:Print.comapShrink.int_aggressiveObservable.mapTestResult.statsTestResult.warningsTestResult.collect
- Clarify documentation for the
int*andnat*generators
- Add ocamlmig
@@migrateattributes to deprecated combinator names. The following are missing a direct translation:QCheck.Gen.big_natat most 1_000_000 without a direct translation in distributionQCheck.Gen.neg_inta non-uniform generator without a direct translation in distributionQCheck.Gen.int_pos_cornersdeprecated without a replacementQCheck.Gen.int_cornersdeprecated without a replacementQCheck.Gen.shuffle_ais in-place, whereas the replacementQCheck.Gen.shuffle_arrayisn'tQCheck.neg_inta non-uniform generator without a direct translation in distributionQCheck.small_int_cornerswithout a direct translation asint_small_cornersis signedQCheck2.Gen.big_natat most 1_000_000 without a direct translation in distributionQCheck2.Gen.neg_inta non-uniform generator without a direct translation in distributionQCheck2.Gen.small_int_cornerswithout a direct translation asint_small_cornersis signedQCheck2.Gen.int_pos_cornersdeprecated without a replacementQCheck2.Gen.int_cornersdeprecated without a replacement
- Remove deprecated function generators
QCheck.{fun1_unsafe,fun2_unsafe} - Renamed
floatgenerator combinators:- Add
QCheck.Gen.{float_pos, float_neg}and deprecateQCheck.Gen.{pfloat, nfloat} - Add
QCheck.{float_pos, float_neg}and deprecateQCheck.{pos_float, neg_float} - Add
QCheck2.{float_pos, float_neg}and deprecateQCheck2.{pfloat, nfloat} - Add
QCheck.(--.)as a synonym forQCheck.float_rangefor consistency - Add
float_exptoQCheck.Gen,QCheck, andQCheck2.Genand make the existingexponentialbinding a synonym for it
- Add
- Renamed
chargenerator combinators:- Add
QCheck.char_rangefor consistency - Add
QCheck.{char_printable,printable}and deprecateQCheck.printable_char - Add
QCheck.{char_numeral,numeral}and deprecateQCheck.numeral_char - Add
QCheck.Gen.char_printableand makeQCheck.Gen.printablean alias for it - Add
QCheck.Gen.char_numeraland makeQCheck.Gen.numeralan alias for it - Add
QCheck2.char_printableand makeQCheck2.printablean alias for it - Add
QCheck2.char_numeraland makeQCheck2.numeralan alias for it
- Add
- Deprecate
QCheck.Gen.optandQCheck2.Gen.optfor consistency - Renamed
bytesgenerator combinators:- Add
QCheck.bytes_sizefor consistency - Deprecate
QCheck.bytes_gen_of_sizeandQCheck.bytes_of_size - Removed optional
genparameter fromQCheck.Gen.bytesfor consistency (API breaking): To fix it, replaceGen.bytes ~gen:char_genwithGen.bytes_of char_gen - Added
QCheck.Gen.bytes_size_of,QCheck.bytes_size_of, andQCheck2.Gen.bytes_size_offor consistency
- Add
- Renamed
stringgenerator combinators:- Add
QCheck.string_sizefor consistency - Removed optional
genparameter fromQCheck.Gen.stringfor consistency (API breaking): To fix it, replaceGen.string ~gen:char_genwithGen.string_of char_gen - Add
QCheck.Gen.string_size_of,QCheck.string_size_of, andQCheck2.Gen.string_size_offor consistency - Deprecate
QCheck.Gen.small_string,QCheck.small_string, andQCheck2.small_string - Deprecate
QCheck.string_gen_of_size - Deprecate
QCheck.string_gen - Deprecate
QCheck.string_of_size - Deprecate
QCheck.printable_string - Deprecate
QCheck.printable_string_of_size - Deprecate
QCheck.string_printable_of_size - Deprecate
QCheck.small_printable_string - Deprecate
QCheck.string_small_printable - Deprecate
QCheck.numeral_string - Deprecate
QCheck.string_numeral - Deprecate
QCheck.numeral_string_of_size - Deprecate
QCheck.string_numeral_of_size
- Add
- Renamed
arraygenerator combinators:- Add
QCheck.Gen.array_smalland deprecateQCheck.Gen.small_array - Add
QCheck2.Gen.array_smalland deprecateQCheck2.Gen.small_array - Add
QCheck.array_smallfor consistency - Add
QCheck.array_sizeand deprecateQCheck.array_of_size - Deprecate badly named
QCheck.Gen.array_repeatandQCheck2.Gen.array_repeat
- Add
- Renamed
listgenerator combinators:- Add
QCheck.list_sizeand deprecateQCheck.list_of_size - Add
QCheck.Gen.list_smalland deprecateQCheck.Gen.small_list - Add
QCheck.list_smalland deprecateQCheck.small_list - Add
QCheck2.Gen.list_smalland deprecateQCheck2.Gen.small_list - Deprecate badly named
QCheck.Gen.list_repeatandQCheck2.Gen.list_repeat
- Add
- Renamed
intgenerator combinators:- Add
QCheck.Gen.int_smalland deprecateQCheck.Gen.small_signed_int - Add
QCheck.int_smalland deprecateQCheck.small_signed_int - Add
QCheck2.Gen.int_smalland deprecateQCheck2.Gen.small_signed_int - Add
QCheck.Gen.int_posand deprecateQCheck.Gen.pint - Add
QCheck2.Gen.int_poswithout optionaloriginand deprecateQCheck2.Gen.pint - Add uniformly distributed
QCheck.Gen.int_negand deprecate non-uniformQCheck.Gen.neg_int - Add uniformly distributed
QCheck.int_negand deprecate non-uniformQCheck.neg_int - Add uniformly distributed
QCheck2.Gen.int_negand deprecate non-uniformQCheck2.Gen.neg_int - Add
QCheck.Gen.int_small_corners - Add
QCheck.int_small_corners, expandQCheck.Gen.int_corners, and deprecate unsignedQCheck.small_int_corners - Add
QCheck2.Gen.int_small_corners, expandQCheck2.Gen.int_corners, and deprecate (unsigned)QCheck2.Gen.small_int_corners - Deprecate unused
QCheck.Gen.big_nat - Deprecate unused
QCheck2.Gen.big_nat - Add missing
QCheck.nat - Add
QCheck.Gen.int_pos_smalland aliasQCheck.Gen.nat_smalland deprecateQCheck.Gen.small_nat - Add
QCheck.int_pos_smalland aliasQCheck.nat_smalland deprecateQCheck2.Gen.small_nat - Add
QCheck2.Gen.int_pos_smalland aliasQCheck2.Gen.nat_smalland deprecateQCheck2.Gen.small_nat - Add
QCheck.Gen.int_pos_midalias forQCheck.Gen.nat - Add
QCheck.int_pos_midalias forQCheck.nat - Add
QCheck2.Gen.int_pos_midand aliasQCheck2.Gen.nat_mid
- Add
- Renamed monadic and applicative generator combinators:
- Add missing
QCheck.Gen.bindfor consistency - Add missing
QCheck.Gen.apfor consistency
- Add missing
- Renamed
flattencombinators:- Add
QCheck.Gen.flatten_listand deprecateQCheck.Gen.flatten_l - Add
QCheck.Gen.flatten_arrayand deprecateQCheck.Gen.flatten_a - Add
QCheck.Gen.flatten_optionand deprecateQCheck.Gen.flatten_opt - Add
QCheck.Gen.flatten_resultand deprecateQCheck.Gen.flatten_res - Add
QCheck2.Gen.flatten_listand deprecateQCheck2.Gen.flatten_l - Add
QCheck2.Gen.flatten_arrayand deprecateQCheck2.Gen.flatten_a - Add
QCheck2.Gen.flatten_optionand deprecateQCheck2.Gen.flatten_opt - Add
QCheck2.Gen.flatten_resultand deprecateQCheck2.Gen.flatten_res
- Add
- Renamed
shufflecombinators:- Add
QCheck.Gen.shuffle_arrayand deprecate in-placeQCheck.Gen_shuffle_a - Add
QCheck.Gen.shuffle_listand deprecateQCheck.Gen_shuffle_l - Add
QCheck.Gen.shuffle_list_weightedand deprecateQCheck.Gen_shuffle_w_l - Add
QCheck2.Gen.shuffle_arrayand deprecateQCheck2.Gen_shuffle_a - Add
QCheck2.Gen.shuffle_listand deprecateQCheck2.Gen_shuffle_l - Add
QCheck2.Gen.shuffle_list_weightedand deprecateQCheck2.Gen_shuffle_w_l
- Add
- Renamed
oneofcombinators:- Add
QCheck.Gen.oneof_listand deprecateQCheck.Gen.oneofl - Add
QCheck.Gen.oneof_arrayand deprecateQCheck.Gen.oneofa - Add
QCheck.oneof_listand deprecateQCheck.oneofl - Add
QCheck.oneof_arrayand deprecateQCheck.oneofa - Un-deprecate
QCheck.oneofwith a better specification and optional parameters likeQCheck.oneof_weightedand deprecateQCheck.choosefor consistency - Add
QCheck2.Gen.oneof_listand deprecateQCheck2.Gen.oneofl - Add
QCheck2.Gen.oneof_arrayand deprecateQCheck2.Gen.oneofa
- Add
- Renamed
frequencycombinators:- Add
QCheck.Gen.oneof_weightedand deprecateQCheck.Gen.frequency - Add
QCheck.Gen.oneof_list_weightedand deprecateQCheck.Gen.frequencyl - Add
QCheck.Gen.oneof_array_weightedand deprecateQCheck.Gen.frequencya - Add
QCheck.oneof_weightedand deprecateQCheck.frequency - Add
QCheck.oneof_list_weightedand deprecateQCheck.frequency_list - Add
QCheck.oneof_array_weightedand deprecateQCheck.frequency_array - Add
QCheck2.Gen.oneof_weightedand deprecateQCheck2.Gen.frequency - Add
QCheck2.Gen.oneof_list_weightedand deprecateQCheck2.Gen.frequencyl - Add
QCheck2.Gen.oneof_array_weightedand deprecateQCheck2.Gen.frequencya
- Add
- Add missing
QCheck2.Gen.map_keep_inputfor consistency - Add
QCheck.no_shrinkfor consistency - Fix shrinking for
QCheck2.Gen.exponentialwhich could shrink toinfinity - Remove deprecation annotations for
QCheck.Test.{get,set}*helpers - Remove deprecation annotation for
QCheck2.Gen.add_shrink_invariant - Renamed
cornersbindings- Deprecate
QCheck.Gen.int_cornersandQCheck.Gen.int_pos_corners - Deprecate
QCheck2.Gen.int_cornersandQCheck2.Gen.int_pos_corners
- Deprecate
- Add
QCheck.Shrink.floatand enable shrinking forQCheck.float - Add
QCheck.Shrink.float_boundand enable shrinking forQCheck.float_bound_inclusiveandQCheck.float_bound_exclusive - Add
QCheck.Shrink.float_rangeand enable shrinking forQCheck.float_range - Enable shrinking for
QCheck.{pos_float,neg_float,exponential} - Patch
QCheck.Print.floatandQCheck2.Print.floatto print negative nans consistently as "-nan" also on Windows and macOS, and correct documentation forQCheck.{float,pos_float,neg_float}in that they may producenans since #350 from 0.26 - Eta-expand a couple of partial application to compile under OxCaml
- Align printed
collectstatistics and also add a percentage - Fix
QCheck{,2}.Gen.floatgenerator which would only generate numbers with an exponent between 2^{-21} and 2^22 - Elaborate on
QCheck/QCheck2situation in README - Add a missing
descriptionfield to the *.opam files - Document
Shrinkinvariants in theQCheckmodule - Fix a qcheck-ounit test suite failure on OCaml 5.4, removing a needless extra newline
- Fix QCheck2
float_rangeoperator which would fail on negative bounds - Fix
QCHECK_MSG_INTERVALnot being applied to the first in-progress message
- Restore
Test.make'smax_failparameter which was accidentally broken in 0.18 - Adjust
statscomputation of average and standard deviation to limit precision loss, print both using scientific notation, and workaround MinGW float printing to also pass expect tests - Fix dune snippets missing a language specifier in README.adoc
causing
asciidocto error - Add a note to
QCheck{,2.Gen}.small_int_cornersandQCheck{,2}.Gen.graft_cornersabout internal state, and fix a range of documentation reference warnings - Reorganize and polish the
README, rewrite it to useqcheck-core, and add aQCheck2integrated shrinking example - Document
QCHECK_MSG_INTERVALintroduced in 0.20 - Add
QCheck{,2}.Gen.map{4,5}combinators - [ppx_deriving_qcheck] Support
ppxlib.0.36.0based on the OCaml 5.2 AST
- [qcheck-alcotest] Add an optional
speed_levelparameter toto_alcotest - Adjust the
QCheck2.Gen.listshrinker to produce minimal counterexamples at size 3 too - Replace the
QCheck2OCaml 4Random.State.splithack with a faster one - Improve the
QCheck2.Gen.listshrinker heuristic and utilize the improved shrinker in otherQCheck2{list,array,bytes,string,function}*shrinkers - Use
splitandcopyinRandom.StateunderlyingQCheck2to avoid non-deterministic shrinking behaviour - Add missing documentation strings for
QCheck.{Print,Iter,Shrink,Gen}andQCheck2.Gen. - Add
resultcombinators toQCheck,QCheck.{Gen,Print,Shrink,Observable}, andQCheck2.{Gen,Print,Observable}. - Add missing combinators
QCheck{,2}.Print.int{32,64},QCheck.Gen.int{32,64},QCheck{,2}.Observable.int{32,64}, and deprecateQCheck.Gen.{ui32,ui64} - Document
duneusage in README
- Quote and escape in
Print.stringandPrint.charin theQCheckmodule, mirroring theQCheck2.Printmodule's behaviour. Also quote and escapePrint.bytesin bothQCheckandQCheck2. - Clean-up
QCheckandQCheck2documentation pages - Add
exponentialgenerator toQCheck,QCheck.Gen, andQCheck2.Gen - Add
Shrink.booland use it inQCheck.bool - Remove unread
fun_genfield fromQCheck2'sfun_repr_tbltype thereby silencing a compiler warning
- Remove
QCheck2.TestResult.get_instancesas retaining previous test inputs cause memory leaks - Make
QCheck2.state.resimmutable, silencing a compilation warning
- Drop the dependency on
base-bytesas it is provided in all supported versions of the OCaml compiler
- Reintroduce the
Shrink.list_spinefix by catchingInvalid_argumentand falling back on an address comparison. - Fix #273 by lowering
ppx_deriving_qcheck'sqcheckdependency toqcheck-core
- Roll back the
Shrink.list_spinefix, as it was utilizing polymorphic equality that can raise an exception on function comparison.
- make
Test.check_result,Test.check_cell_exn, andTest.check_exnhonor test polarity by raisingTest_unexpected_successwhen a negative test (expected to have a counter example), unexpectedly succeeds. - fix issue with
ppx_deriving_qcheckderiving a generator with unboundgenfor recursive types #269 and a related issue when deriving a generator for a record type - fix #241 causing
QCheck.Shrink.int*to emit duplicates, also affectingQCheck.Shrink.{char,string} - fix a cornercase where
Shrink.list_spinewould emit duplicates
- add several new
bytescombinators:{QCheck,QCheck2}.Gen.{bytes_size,bytes,bytes_of,bytes_printable,bytes_small,bytes_small_of}QCheck.{Print,Shrink,Observable}.bytesQCheck2.{Print,Shrink}.bytesQCheck.{bytes_gen_of_size,bytes_of,bytes,bytes_small,bytes_small_of,bytes_of_size,bytes_printable}
- add new
stringcombinators and aliases:{QCheck,QCheck2}.Gen.{string_small,string_small_of}QCheck.{string_small,string_small_of,string_of,string_printable,string_printable_of_size,string_small_printable,string_numeral,string_numeral_of_size}
- (
QCheck2.small_stringcharacter generator argument is no more optional - reverted again due to backwards incompatibility) - add an optional argument with conservative default to
Shrink.string - fix shrinkers in
QCheck.{printable_string,printable_string_of_size,small_printable_string,numeral_string,numeral_string_of_size}#257 - add
QCheck2.Gen.set_shrinkto modify the generator's shrinker - add
QCheck2.Gen.no_shrinkto build a generator with no shrinking - add an environment variable
QCHECK_MSG_INTERVALto controlQCheck_base_runner.time_between_msg - fix unknown option error message referring to
qtest
- fix: allow
~countinTest.maketo be 0 - fix: allow
~long_factorinTest.maketo be 0
-
use
Float.equalfor comparingfloats in theObservablemodule underlying function generators. -
add optional
debug_shrinkparameters in alcotest interface and expose defaultdebug_shrinking_choicesin test runners -
add missing
?handlerparameter toTest.check_cell_exn -
remove
--no-bufferoption ondune runtestto avoid garbling the test output -
add an option
retriesparameter toTest.makeet al. for checking a property repeatedly while shrinking. This can be useful when testing non-deterministic code. #212 -
add
tup2totup9for generators -
add
Test.make_negfor negative property-based tests, that are expected not to satisfy the tested property. -
rename
Gen.opttoGen.optionbut keep the old binding for compatibility. -
add additional expect and unit tests and refactor expect test suite
-
fix function generation affecting reproducability #236
-
add a shrinker performance benchmark #177
-
fix distribution of
QCheck2.printablewhich would omit certain characters -
shrinker changes
- recursive list shrinker with better complexity
- string shrinker reuses improved list shrinker and adds char shrinking
- function shrinker now shrinks default entry first and benefits from list shrinker improvements
- replacing the linear-time char shrinker with a faster one reusing the bisecting int shrinker algorithm
- add
Shrink.char_numeralandShrink.char_printable - add shrinking for
char arbitraryschar,printable_char, andnumeral_char
-
documentation updates:
- clarify upper bound inclusion in
Gen.int_boundandGen.int_range - clarify
printable_charandGen.printabledistributions - add missing
string_gen_of_sizeandsmall_printable_stringdocumentation - document
QCheck_alcotest.to_alcotest - fix documented size distribution for
arbitrarygeneratorsstring_gen,string,printable_string,numeral_string,list, andarray - fix exception documentation for
check_result,check_cell_exn, andcheck_exn - fix documentation for the distribution of
Gen.printableandprintable_char - fix documentation for the shrinking behaviour of
QCheck2.printable
- clarify upper bound inclusion in
-
add environment variable
QCHECK_LONG_FACTORsimilar toQCHECK_COUNT#220 -
make test suite run on 32-bit architectures
- fix
Gen.{nat,pos}_split{2,} - fix stack overflow in #156
This releases marks the addition of QCheck2, a module where generation
and shrinking are better integrated.
See #109 and #116.
This API is still experimental. The normal QCheck module is still there
and hasn't changed much.
deprecations and breakges:
- make
QCheck.Test_result.tabstract and add missing getters - deprecate
QCheck.oneof - deprecate
Gen.string_readablein favor ofGen.(string_of char)or the newGen.string_printable - require at least OCaml 4.08
other changes:
- unsigned int32 and int64
- rename
small_int_corners - add
?ratiotoopt, to modify random distribution of options
-
new function:
Gen.delay -
install printer for an internal exception
-
fix(runner): use random state independently for each test
-
Fixes distribution and
min_intissues -
doc: point to @jmid 's website
- fix(runner): detect more failures in the runner
- fix: catch exceptions in generators and log them. (#99)
- test: add test for #99
- fix doc
- fix: in main runner, remove reset line in more places if
colors=false - fix: invalid arg in
int_rangewhen a<0 - fix(runner): do not use ansi code for random seed if
colors=false - feat: on
>=4.08, provide let operators
- modify
int_rangeto make it accept ranges bigger thanmax_int. - less newline-verbose stats
- add
int{32,64}shrinkers to arbitrary gens - add
int{32,int64}shrinkers - move to ounit2 for
QCheck_ounit
- make counter private
- Add debug shrinking log
- fix: small fix related to stdlib/pervasives
- feat: add flatten combinators in
gen
- fix singleton list shrinking
- feat: add
Gen.char_rangeandGen.(<$>)(credit @spewspews)
- Add
QCheck.Gen.{string_of,string_readable} - fix
int_boundbound inclusiveness problem - change implementation of
int_boundto generate values usingRandom.State.intforbound < 2^30 - add weighted shuffled lists generator
- add
float_rangeto generate a floating-point number in the given range (inclusive) - add
float_bound_inclusiveandfloat_bound_exclusiveto generate floating-point numbers between 0 and a given bound
Shrink: decompose Shrink.list into Shrink.list_spine and Shrink.list_elemsGen.fixhas a more general and useful type- update README to include
Relysection (qcheck now available for reason-native!) - Fix stat printing
- speed-up list shrinker
- Better int shrinking
- core: modify proba distributions again, add
big_nat - feat: add
small_array, modify distributions - print number of warnings in runner's summary
- refactor: modify type of results to make them more accurate
- feat: warn/fail if too many tests passed only b/c precondition failed
-
add
qcheck-ounitsublibrary -
use environment variables to configure
qcheck-alcotesttests -
alcotest backend for qcheck
-
make
qcheck.ounittests verbose by default -
make
qcheckis a compatibility library, depends onqcheck-core -
split lib into
qcheckandqcheck.ounit -
add
TestResult.is_successhelper -
give access to list of instances in test results
-
allow setting
time_between_msgin runner -
chore: remove submodule
-
chore: add travis support
-
doc: explanations about qcheck.ounit runners
-
doc: update readme
- migrate to jbuilder
- fix warnings
- add some useful functions
- update oasis files (close #48)
- update copyright header (closes #47)
-
switch to BSD license, make it more explicit (close #43)
-
improve multi-line message printing in ounit (closes #46)
-
fix complexity of
add_stat -
allow negative entries in statistics (see #40)
-
add a way for tests to report messages to the user (see #39)
-
add
QCheck.Shrink.int_aggressiveand make default int shrinker faster -
shrinker for
map_keep_input -
add
QCheck.set_gen, missing for some reason -
more compact verbose output (see #33)
-
better handling of dynamic progress line
-
Add colors to checkmarks in verbose mode
-
improve statistics display for runner
-
recover exception of shrunk input
-
print status line before the solving starts
-
add
find_exampleandfind_example_gento synthesize values from properties (see #31) -
add
QCheck.genfor accessing the random generator easily -
colorful runners, with
--no-colorsto disable them -
add more generator (for corner cases)
-
better generation of random functions (see #8), using
Observableand an efficient internal representation using heterogeneous tuples, printing, and shrinking. deprecate old hacks. -
add statistics gathering and display (see #30)
-
better printing of Tuple
-
improve
Shrink.{array,list}(see #32) -
Change asserts to raise
Invalid_arg(following the doc), and update doc -
Change
Gen.{int_bount,int_range}to support up to 2^62
- fix regression in runner output (print results of
collect) - update the
@sincetags
- missing char in
Gen.char(close #23) - add
testanddocto opam - add
small_listgenerator - add
~long_factorto tests and runner, for long tests - add more examples in readme, better doc for runners
- improved reporting when running qcheck tests
- add
Test.get_counton test cells
- Add cli option for backtraces in
QCheck_runner - Add test case for raising exception
- Better handling of backtraces
- All tests now have a name
- Add step function called on each instance in a test
- make
small_inta deprecated alias tosmall_nat - add
small_signed_int - remove some warnings
- use safe-string, and fix related bug
- Add long tests options to
QCheck_runner - Add
lengthspecification forto_ounit2_test - Added paragraph in README about long tests
- document exceptions
- add
small_nat, changesmall_intsemantics (close #10) - add
QCheck.assume_fail - add
QCheck.assume; explain preconditions a bit (close #9) - Polish documentation
- Added quad support uniformly
- merge back from
qtest: big changes in API, shrinking, use'a arbitrarytype that combines printer, generator, shrinker, etc. (see git log) - merlin file
- reorganize sources,
_oasis,.merlin, etc.
-
bugfix in
fix_fuel -
if verbose enabled, print each test case
-
add
QCheck.run_main -
QCheck_ounit.~:: -
add
(>:::) -
add
qcheck_ounit ml{lib,dylib} -
trivial ounit integration
-
make
test_cell.nameoptional -
Arbitrary.fix_fuel(_gen): add a recursive case -
Arbitrary.fix_fuel_gen, similar tofix_fuelbut threading a state bottom-up to make choices depend on the path -
Arbitrary.fail_fixto fail in a fixpoint -
helper cases for
Arbitrary.fix_fuel
- get rid of submodule
generator Arbitrary.fix_fuel, to generate complex recursive structures- new combinators (infix map, applicative funs, shuffle)
- remove generator/Generator, and a deprecation warning
- output of printers of lists/arrays now parsable by ocaml toplevel
- integrate Gabriel Scherer's
GeneratorintoQCheck - add
||| - add
Prop.raises - print the faulty instance in case of error (if a printer is available)
- some combinators for
QCheck.Arbitrary QCheck.mk_testtakes more arguments
- oasis based build system
- source files