dvalters / HAIL-CAESAR

The High-Performance Architecture-Independent LISFLOOD-CAESAR model of floodplain, river, and sediment dynamics
http://dvalters.github.io/HAIL-CAESAR
GNU General Public License v3.0
35 stars 12 forks source link

Testing framework #16

Open dvalters opened 6 years ago

dvalters commented 6 years ago

It's time to have a proper testing framework for HAIL-CAESAR. Initially I'm thinking along the lines of a set of regression tests or functional integration tests for some standard test cases. Then finer-grained tests can be introduced as the code is refactored or as new functions are written etc.

Test cases with Known Good Answers (KGAs)

Start with some simple test cases that can be run as part of the code, without having to read in external input files. (Rainfall, DEM etc.)

To tick off here as they are added to the test battery:

Idealised topography

Planar surfaces, i.e. totally flat, sloping E-W, N-S. NW-SE etc. Water inputs can be coded in as constants or setting the water depths to a constant value at given points and letting the water run off. (Testing the main LISFLOOD-FP algorithm and boundary conditions)

For example, @aproeme has made these test cases in the idealised LISFLOOD code (no real topography)

Water held constant at a single central source point, checks that it is routed away from the centre correctly:

tempslope_bc

Real topography

I.e. Some standard test cases using DEM input with rainfall input. Boscastle and the Swale test cases would be good to use.

Short term, flash flood event style test cases

Longer term landscape evolution

etc..

dvalters commented 6 years ago

Some other ideas to jot down:

Serial vs Parallel

Different configurations