WAVI.jl tests
WAVI.jl includes a comprehensive suite of unit tests, which help to prevent bugs, ensure code quality, and prevent breaking changes. Scripts to run these tests are held in the /test folder. These tests utilize the Julia unit testing architechture, which provides a streamlined environment for testing.
WAVI.jl includes 10 individual testing scripts, /test/test_XXXXX.jl. These roughly correspond to each level of the data structure heirarchy, with a couple of extras. They are
/test/test_fields.jl: test the WAVI.jl fields structures./test/test_grids.jl: test the WAVI.jl grid structures./test/test_kronecker.jl: test the Kronecker product operations used in WAVI.jl./test/test_melt.jl: test the WAVI.jl basal melt rate parametrizations./test/test_models.jl: test the WAVI.jl model structures./test/test_outputting.jl: test the WAVI.jl output writing structures./test/test_simulations.jl: test the WAVI.jl simulation structures./test/test_timesteppingparams.jl: test the WAVI.jl timestepping parameters structures./test/test_utils.jl: test the utility functions employed by WAVI.jl./test/verification_tests.jl: verification tests for the WAVI.jl model. Note that these tests require setup and running of a WAVI.jl simulation and therefore take a while!
Individual unit tests can be run by running the corresponding Julia script (note that WAVI.jl must be installed)
julia> include('./test/test_XXXXX.jl')The output will appear as below (in this case for /test/test_fields.jl). The test summary lists the total number of tests, alongside the number which pass and fail.

The full suite of tests can be run using the runtests.jl script.
julia> include('./test/runtests.jl')