JuliaGeometry / MeshIntegrals.jl

Numerical integration over Meshes.jl geometry domains
https://juliageometry.github.io/MeshIntegrals.jl/
MIT License
24 stars 4 forks source link

Need unit tests with analytic solutions #67

Open mikeingold opened 1 month ago

mikeingold commented 1 month ago

The current unit testing structure was aimed mainly at testing all possible combinations {f, G, IA} where f is the integral function name/alias, G is a Meshes.Geometry sub-type, and IA is an integration algorithm. In hindsight, the system I wrote for batching these tests was perhaps a little bit too clever for its own good. It also relies on Meshes.measure to produce correct answers for a unit-valued integrand.

As of 7-Sep-2024, we’re currently at about 77% code coverage per the Codecov report. Most of the gaps seem to be related to wrapper/convenience methods, i.e. ones that simply batch out to the core integration methods.

Ideas for a more robust test system:

Status of Unit Tests with Analytic Solutions

mikeingold commented 1 month ago

I just merged #68 beginning an effort to restructure unit tests.

JoshuaLampert commented 1 month ago

73 continues this effort.

JoshuaLampert commented 1 month ago

78 implements a TestItems.jl workflow.

mikeingold commented 1 month ago

Status Update as of v0.14.0

Code coverage is "officially" up to 100% as of the v0.14.0 release. However, this only verifies that all lines of code within this package are exercised during the tests, not that all possible combinations of integral argument types produce correct results.

Work is still ongoing to convert old-style generated @testset's to new-style (combinations.jl) @testitem's.

mikeingold commented 3 weeks ago

Status Update

As of #100 merging, the previous automatic test generation system (auto-tests.jl) has been completely removed in favor of a collection of TestItems.jl @testitems (combinations.jl).

Remaining work on this Issue: