10. Test SuiteΒΆ

To ensure correctness of the code and verify that the implementation is correct, multiple levels of testing are performed. At the finest level, unit tests are run to ensure functions inside the code perform as expected. These building blocks are assembled to form part of the larger code which relies on the correctness of the smaller blocks. In the middle, the larger blocks are then tested to ensure correctness. Finally integration tests are done to test the end-to-end execution for testing against analytical solutions.