The CMOR test suite suffers from a lot of clutter and would benefit from a cleanup/reorganization.
Here's a list of issues that I have noticed:
There are many files for tests that are either redundant or for very specific use cases.
Test files don't have a consistent naming convention, or have names that don't convey anything meaningful about the tests.
Test files that are in the Test directory but are not used in the Makefile.
There are many "helper" files for functions or tables scattered throughout Test directory along side the test files.
Goals for tests in the cleanup:
Create unit tests for each function listed in the CMOR API. Each function should be tested for how they support certain features such as forecast coordinates, append mode, etc.
Replicate each unit test for each supported language (C, Python, and Fortran) to make sure that they work consistently across different language. Have each language's set of tests be in their own directory.
Reduce the amount of utility functions and tables used for tests. Unit tests for the same function in different languages should all be able to use the same kind of data from JSON or netCDF files, which should be stored in their own directory. Unless there is code that can be used across different tests, utility functions should be restricted to the test files they are used in.
The CMOR test suite suffers from a lot of clutter and would benefit from a cleanup/reorganization.
Here's a list of issues that I have noticed:
Goals for tests in the cleanup: