WCT has many unit tests in the form test*.cxx. Each one provides a main() and linking them during the build is time consuming. All have one or more of these problems:
- Each is a
main() and thus require long time to link them all.
- There is no cohesion across the tests (no "suites of cases").
- Varied use of uncaptured cout/cerr usage (should use logging).
- Big one: no actual run-time testing (no assertions).
- Though even these serve as compile-time tests.
- Rely on humans to look at some plot.
- Require input files and/or command line args to do anything at all.
- Really should be "checks".
OTOH, WCT also has doctest tests which avoids all/most of these problems.
The basic plan for addressing this is to migrate tests to doctests and correct what problems we can along the way and/or divert tests to checks.
- Have LLM separate
test*.cxx into things that really need to be check*.cxx and which are candidates for migrating to doctests.
- Have LLM make a beads issue for each test in the to-migrate list.
- Develop a claude "command" with instructions on how to migrate a
test*.cxx file, including updating a beads issue with summary of what was done, closing it, and opening a new issue if the LLM determines human followup is needed.
- Develop a script to iterate on beads with a fresh
claude -p for each test.
- Run through the tests to migrate.
- Human examines any new issues and addresses them in some creative way.
WCT has many unit tests in the form
test*.cxx. Each one provides amain()and linking them during the build is time consuming. All have one or more of these problems:main()and thus require long time to link them all.OTOH, WCT also has doctest tests which avoids all/most of these problems.
The basic plan for addressing this is to migrate tests to doctests and correct what problems we can along the way and/or divert tests to checks.
test*.cxxinto things that really need to becheck*.cxxand which are candidates for migrating to doctests.test*.cxxfile, including updating a beads issue with summary of what was done, closing it, and opening a new issue if the LLM determines human followup is needed.claude -pfor each test.