Ferrite-FEM/Ferrite.jl

Improve test coverage of foundational code and document fundamental assumptions

Open

#558 opened on Dec 14, 2022

View on GitHub
 (1 comment) (1 reaction) (0 assignees)Julia (109 forks)github user discovery
enhancementhelp wanted

Repository metrics

Stars
 (439 stars)
PR merge metrics
 (PR metrics pending)

Description

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).

Contributor guide