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 (int
s,float
s andchar
s) 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, theqstate
now uses anassoc_list
to 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).