Material-cache reset coverage should populate stresses through the global cache
API rather than the removed `create_material_state` helper.
- Mirror production signatures for `update_geometry_cache!` / `update_material_cache!`.
Manual quadrature comparisons must refresh material data with the same global
state container production assembly uses, and geometry updates no longer take the
kernel object.
- Construct `global_cache` beside the per-IP material workspace.
- Pass `global_cache` into `update_material_cache!` and drop the kernel argument
from `update_geometry_cache!`.
COO assembly now keeps persistent material history on the cache’s global store,
so tests should not fabricate a separate `state_old` argument.
- Call `assemble!(cache, assembler, kernel, mesh, u_global, Δt)` in correctness,
allocation, and two-element coverage paths.
- Clarify comments about zero displacement vs nonzero `u_global`.
The three-phase cache exerciser still referenced the retired per-call material
state bag and an older `update_geometry_cache!` arity. Fold everything onto the
shared global cache object and the slimmer geometry updater signature.
- Hoist `BenchmarkTools` to module scope for the `@benchmark` block.
- Drop the duplicate legacy `update_material_cache!` testset; keep the zero-alloc
path driven by `GlobalMaterialCache`.
Stateful initialization now flows through `GlobalMaterialCache` construction in
the individual tests, so the placeholder helper only duplicated errors.
- Remove `create_material_state` and its docstring from shared continuum helpers.
Wire the continuum suite into the newer kernel families beyond baseline elasticity
assembly: branch coverage for material caching, a brick direct solve, and mixed
u–p / Stokes / HR / Hu–Washizu matvec + solver smoke paths.
- Add `test_material_cache_branches.jl` next to the existing cache-update group.
- Include mixed formulation kernels with companion solves or penalty matvec checks.
The DOF runner now exercises the type-stable handler path end-to-end (multi-field
templates, facet orientation maps, and higher-order hex facets) instead of the
retired field-unification stub.
- Replace `test_field_unification.jl` with global ranges, multifield wiring, and
facet-map coverage across tet/wedge/pyramid/tet10/hex20 shapes.
- Drop the unused `Tensors` import and the old header docstring.
Inference-sensitive helpers belong behind the public module boundary so changes to
includes do not silently widen types in CI.
- Switch to `using JuliaFEM` after removing relative includes.
Static-array return paths depend on the same generated helpers as production code;
tests should import the package rather than cherry-picking sources.
- Drop manual topology/basis includes.
Partition-of-unity constraints must hold for the generated tables JuliaFEM ships,
not a parallel copy pulled via relative paths.
- Replace includes with `using JuliaFEM`.
Numerical tolerances are meaningful only when they target the shipped basis
implementation and quadrature pairing.
- Import `JuliaFEM` instead of stitching topology files manually.
Kronecker tests should exercise exported Lagrange evaluation helpers together with
topology types from the package root.
- Swap fragile src includes for `using JuliaFEM`.
Interpolation tests should respect manifest exports and initialization order from
the main module.
- Remove duplicated topology/basis includes; import `JuliaFEM` instead.
Ensure gradient identities run against the same API users import, not a bespoke
subset of source files.
- Replace relative includes with `using JuliaFEM`.
Align derivative checks with the packaged basis/topology stack instead of
partially re-including `src/` fragments.
- Drop manual `include("../../src/...")` bootstrapping in favor of `using JuliaFEM`.
Basis regression files used to `include` topology and generated basis sources
directly from `../../src`, which drifted from package exports and hid missing
wiring until CI.
- Replace the relative `include` chain with `using JuliaFEM` so tests hit the
real module surface (`Lagrange{P}`, parametrized topologies, generated tables).
Import `JuliaFEM` in the topic runner and include new Piola/Nedelec,
integration-basis quadrature, and basis-description regressions.
- Reorder derivative/type-stability includes after adding coverage files.
Replace hand-inlined topic tests with `TOPICS` discovery, optional ARGS-based
filtering, and interface smoke checks required by the new mesh stack.
- SPDX-header the runner and assert `AbstractInterfaceMesh` / `InterfaceMesh` exist.
- `include(joinpath(topic, \"runtests.jl\"))` for every mirrored topic directory.
- Drop obsolete inline includes for retired paths; note legacy tests live outside CI.