2006-05 13:We present a complete rewrite of Mercury's
QuickCheck implementation:
qcheck2 (the sample
unit test module (peano_unit_tests)
requires the peano
module in order to run). The essence of testing
à la qcheck --
type discernment to obtain (random) test values
with a test specification language -- remains
unchanged. The new features of this new version
enhance the system with:
- complete control over what is reported and
when it is reported; - dynamic control over ranges of random
number-like values (ints,floats andchars) as
well as the random number generator type itself; - and for the code-hacker:
qcheck2
is broken up into separate modules along
functional lines
The documentation for qcheck (upon
which qcheck2 is built) is a model
for any system to follow; so, documentation, to
include a system description and transition guide,
for qcheck2 is under development.
Update 2006-05-20:As the test description
(Description) may now be of any
type -- even non-comparable types, such as,
for example, function types -- using amap
with Description keys is will cause
errors when using Description types
that cannot be compared. As such, theqstatenow uses anassoc_listto accumulate the test
results.
Update 2006-05-21:Added information to the summary
report: this report now shows which predicates
were not tested. The work-in-progress
documentation
now covers the reporting facility comprehensively.
12:ltq
(Logical Types Quicksilver compiler) now comes
with qcpt (QuickCheck Predicate
Types), a system that discerns the interface
predicates and functions of a system (to
facilitate comprehensive unit testing). Perhaps
even more important is the inclusion of a README
that doubles as a HOWTO and INSTALL document.
11:Completed the document describing an implementation
of mutable syntax for Mercury. This article in
available in the literature section (see above).