The current examples produce mainly self-tests, and non-self-tests are easier to write with QuickCheck than with Apropos.
(Self-tests are testing the so-called Apropos morphisms which is not user code; it is written to help the testing of user code.)
I need one example which demonstrates that Apropos is better than QuickCheck.
- Define data types
A and B, a function f : A -> B and a list of QuickCheck property tests [t1, t2, ..., tN] for f.
- Make sure that
[t1, t2, ..., tN] is nearly optimal, i.e. you cannot write much shorter equivalent idiomatic QuickCheck code. (I volunteer to help in this step.)
- Write Apropos code which is equivalent to
[t1, t2, ..., tN].
- Show that the Apropos code is faster/shorter than the definition of
[t1, t2, ..., tN].
The current examples produce mainly self-tests, and non-self-tests are easier to write with QuickCheck than with Apropos.
(Self-tests are testing the so-called Apropos morphisms which is not user code; it is written to help the testing of user code.)
I need one example which demonstrates that Apropos is better than QuickCheck.
AandB, a functionf : A -> Band a list of QuickCheck property tests[t1, t2, ..., tN]forf.[t1, t2, ..., tN]is nearly optimal, i.e. you cannot write much shorter equivalent idiomatic QuickCheck code. (I volunteer to help in this step.)[t1, t2, ..., tN].[t1, t2, ..., tN].