- Some generators could use better "tuning".
- Ensure common generators hit the corner cases with a high enough frequency.
- Consider more or alternative generators from:
- These types all have generators, but could use more convenience functions:
Dict
generatorsFloat
generatorsList
generatorslist_with_length_from
: this one will never shrink on length
Set
generators
- Add generators for
bit_array
- Combinators
bind2
- State-machine testing as in qcstm
- Handle recursive data types. See:
- Observers. See:
- Observer
- Observable
- The section on Observers from here
- Speed up the
String
generators. (These are currently quite slow!)- (This has gotten better in
v0.0.2
andv0.0.5
.)
- (This has gotten better in
- "Char" generators
- Figure out better defaults for the "char" generators.
- Right now they are focused on ascii characters mainly.
v0.0.8
introducedchar_utf_codepoint
... maybe it should be the defualt char generator for strings?
- Having "char" generators is a little weird in a language without a
Char
type, but they are currently needed for generating and shrinking strings. - Some of the char generators take integers representing codepoints, but this is kind of awkward to work with.
- Figure out better defaults for the "char" generators.
- Need to make it easier to turn off shrinking at certain points.
- Either by swapping in the
atomic
shrinker, or - Making a
config
option to turn shrinking off for a particularrun
orgiven
callback.
- Either by swapping in the
- Consider a reorg of the modules.
- Finalize which functions are part of the public API.
- Finalize the named arguments.
- Include more info (other than just the shrunk value) in counter-examples.
- (
v0.0.3
) Now includes the original failing example, shrink steps, and any captured error messages or exceptions. - However, the format of the presented data is not very user-friendly.
- (
- The counter-example info looks different on the Erlang and JavaScript targets.
- There are some places that use
let assert
to check for errors, especially checking for bad arguments. These should be addressed.- Also, when appropriate, function arguments should be validated and good errors should be returned.
- Tests counts in the
config
that are too high can cause timeouts in Gleeunit if you aren't using helpers from qcheck_gleeunit_utils- Default test count was dropped to 1000 in
v0.0.5
.
- Default test count was dropped to 1000 in
- Don't leak the
prng
types.v0.0.6
addressed this
- Some of the tests fail on JS target.