I’m curious about the need for (list of all tests $).
It feels like (test $) could be a trait, and there could be a (execute test $) rule for each. This would let the test driver ((program entry point) in unit.dg) identify all the tests with a query.
#day-month-year
(test *)
(execute test *)
(day 12 month 1 year 1969)
Just a bit more verbose, but helps ensure that all the tests actually are tested.
I’ve checked in a version of this ((run *) rather than (execute test *)) to the Dialog source repository, and I’ll include you on the PR.
We should push out a 1b/02 release, to keep folks from writing unit tests around the old paradigm. (And maybe include @Draconis’s (at most once) predicate, to boot.)
There’s (eval $) or (try $) or (attempt $) or even (test $) after changing the trait to (unit test $), but none of those seem sufficiently better than (run $) (which at least has the virtue of taking as few keystrokes as (try $)) to get me to go back and edit every single test I’ve ever written one more time.
I like (run $) because it’s clearly a verb rather than a noun in this context, and (try $) is already used for something completely different in the library (so a badly-written rule might spill over from one meaning to the other).