Add comprehensive unit tests for core modules #60
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Proposed Changes
This PR adds a comprehensive suite of unit tests covering critical modules of the codebase:
test_config_extended.cpp): Validates configuration file parsing for solver parameters, optimizer settings, quadrature rules, boundary conditions, and problem definitionstest_entropy.cpp): Verifies quadratic and Maxwell-Boltzmann entropy implementations including derivatives, duality properties, and mathematical identitiestest_io.cpp): Tests round-trip serialization/deserialization of mesh connectivity and restart solution filestest_numericalflux_extended.cpp): Validates upwind flux computations for scalar and matrix cases, including Steger-Warming and Van Leer schemestest_optimizer_extended.cpp): Tests Newton, Regularized Newton, and Part Regularized Newton optimizers with various entropy functions and moment reconstructionstest_problemgeometry.cpp): Validates cross-section properties, analytical solutions, and initial conditions for checkerboard, lattice, and line source problemstest_utilities.cpp): Tests text processing utilities and slope limiter functionsThese tests ensure correctness of fundamental algorithms and provide regression protection for future development.
Related Work
These tests complement existing test infrastructure and provide coverage for modules that previously lacked dedicated unit tests. They follow the Catch2 testing framework already in use by the project.
PR Checklist