Improve test coverage of foundational code and document fundamental assumptions
#558 创建于 2022年12月14日
仓库指标
- Star
- (439 star)
- PR 合并指标
- (平均合并 15天 5小时) (30 天内合并 17 个 PR)
描述
https://github.com/Ferrite-FEM/FerriteViz.jl/pull/51 revealed another problem with something seemingly simple (i.e. generating triangle grids). With the help of https://github.com/Ferrite-FEM/Ferrite.jl/pull/517 @koehlerson and I were able to track down issues in the build in grid generators. Some more of the recent PRs (e.g. https://github.com/Ferrite-FEM/Ferrite.jl/pull/553 and https://github.com/Ferrite-FEM/Ferrite.jl/pull/523) fix symptoms of something more fundamental. Technically speaking we have test coverage (in the sense of path coverage) on fundamental code, but we do not test the implementation assumptions. For example, the interpolation tests (https://github.com/Ferrite-FEM/Ferrite.jl/blob/master/test/test_interpolations.jl) cover some mathematical properties, which should be fulfilled by the implementation, but they do not cover some important implementation details. This is different from https://github.com/Ferrite-FEM/Ferrite.jl/issues/399, which suggest a guideline for implementing new elements.
Testing the foundation will be quite tricky, because it is neither a real unit nor an integration test. Let us discuss possibilities in this thread with the goal to avoid regressions in the future (and maybe to uncover faulty assumptions between different portions of the code).