Use get_basis_functions on Quad4/Tri3/Seg2; reference Gauss tuples for face rules; depwarn symmetric apply_load! overloads that carry an unused kernel argument.
Introduce _depwarn_redundant_kernel_arg! and a session Ref so legacy overloads that ignore a volume kernel emit a single Base.depwarn toward kernel-column-only APIs.
Replace the retired per-shape modules with the single `test_quadrature_rules.jl`
entry point that mirrors the current quadrature implementation layout.
- SPDX header; trim imports to `Test`, `JuliaFEM`, and `Tensors`.
Legacy physics API tests were retired with the module reset; keep only the strain
smoke file until higher-level physics coverage returns.
- Import `JuliaFEM` explicitly for includes under `Pkg.test`.
Drive refinement through `create_structured_box_mesh` so tests stay aligned with
the dimensioned `Mesh{8,Hex8}` constructors, and keep a cheap analytic volume
sanity check for `compute_element_volume`.
- SPDX header; replace bespoke manual meshes with structured coupons + bisection counts.
Register the recently introduced damage/creep/eigenstrain/Chaboche markers so the
generated registry cannot drift from their storage types and default symbols.
- SPDX header refresh.
Add a focused regression that `compute_stress` lands on the von Mises surface when
the trial state lies outside yield, using the returned backstress state.
- SPDX header refresh for the file.
The refactor exposes in-place `get_*_vector(workspace, buf)` overloads; exercise them
beside the allocating helpers and keep allocation probes on pre-filled buffers.
- Assert buffer aliases and equality against freshly extracted vectors.
- Replace generic `get_field` probes with direct NamedTuple field access.
The previous file duplicated a long narrative and many scenarios that better live
in basis/quadrature coverage; keep the Jacobian helpers exercised with tuple vs
vector coordinates and physical derivative consistency.
- SPDX header; drop unused `LinearAlgebra` import.
- Fix basis calls to `Triangle{3}` / `Lagrange{1}` and verify scaling + PoU gradient sum.
Replace the hand-built toy elements with a single coupon produced by
`create_elements!`, matching how assembly pulls DOFs from handlers.
- SPDX header + one regression comparing flat vs structured extraction for T+u on Hex8.
The stiffness check already targets the shipped COO assembler; drop marketing-style
labels from comments and console banners so failures read like ordinary regressions.
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.