From 4a37c6e5a8c2f99f7198c805846a7cac3a957c7a Mon Sep 17 00:00:00 2001 From: Michael Kraus Date: Fri, 9 Oct 2026 17:31:34 +0200 Subject: [PATCH] Move the top-level test files that mirror no source file The test convention keeps a test file at the top level of test/ only where it mirrors src/.jl. Each moved file keeps its label and group in test/runtests.jl. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 6 ++++++ scripts/local_evaluation_agreement.jl | 2 +- test/{ => integration}/basis.jl | 0 test/quality/jet.jl | 4 ++-- test/runtests.jl | 2 +- 5 files changed, 10 insertions(+), 4 deletions(-) rename test/{ => integration}/basis.jl (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index a3c3368..474eae5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,12 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). CI uploads coverage from the `Julia 1 - ubuntu-latest` job instead of `Julia min`, and a test job saves the Julia cache only when it succeeds. +`test/basis.jl` moved to `test/integration/basis.jl`. The test convention keeps a test file at +the top level of `test/` only where it mirrors `src/.jl`, and there is no +`src/basis.jl`: the file tests clamped and recombined bases across `src/bspline.jl`, +`src/recombined.jl`, `src/boundary.jl`, `src/mesh.jl`, `src/quadrature.jl`, `src/mass.jl`, +`src/spline.jl` and `src/tensorproduct.jl`. + ## [0.3.2] — 2026-10-03 ### Bug Fixes diff --git a/scripts/local_evaluation_agreement.jl b/scripts/local_evaluation_agreement.jl index c970c6c..31f540d 100644 --- a/scripts/local_evaluation_agreement.jl +++ b/scripts/local_evaluation_agreement.jl @@ -1,5 +1,5 @@ # How closely `evaluate(b, û, x, d)` agrees with a sum over the whole basis, and therefore -# what kind of tolerance the test in `test/basis.jl` may use. +# what kind of tolerance the test in `test/integration/basis.jl` may use. # # `evaluate(b, û, x, d)` sums the local block of `local_width(b)` functions, obtained from # de Boor's triangular scheme plus derivative lifting. The reference sums `û[j] * evaluate(b, diff --git a/test/basis.jl b/test/integration/basis.jl similarity index 100% rename from test/basis.jl rename to test/integration/basis.jl diff --git a/test/quality/jet.jl b/test/quality/jet.jl index 02f00d0..81f87da 100644 --- a/test/quality/jet.jl +++ b/test/quality/jet.jl @@ -10,7 +10,7 @@ using Test # (`op \ b32` on a `CirculantMass{Float32}`, test/mass.jl) gets none. if isdefined(JET, :JET_AVAILABLE) ? JET.JET_AVAILABLE : JET.JET_LOADABLE - # test/basis.jl: evaluate_all! on a free and a Dirichlet bounded basis and a periodic basis + # test/integration/basis.jl: evaluate_all! on a free and a Dirichlet bounded basis and a periodic basis b = BSplineBasis(UniformMesh(32, -10 .. 10), 3) br = BSplineBasis(UniformMesh(32, -10 .. 10), 3, Dirichlet()) bp = BSplineBasis(UniformMesh(32, 0 .. 2π), 3, Periodic()) @@ -29,7 +29,7 @@ if isdefined(JET, :JET_AVAILABLE) ? JET.JET_AVAILABLE : JET.JET_LOADABLE @test isempty(JET.get_reports(JET.report_opt(evaluate, (typeof(B), Array{Float64, 3}, NTuple{3, Float64}); target_modules = (SimpleSplines,)))) - # test/basis.jl: complex coefficients on a 2-D tensor product, with a derivative order + # test/integration/basis.jl: complex coefficients on a 2-D tensor product, with a derivative order B2 = BSplineBasis(UniformMesh(6, 0 .. 1), 3) ⊗ BSplineBasis(UniformMesh(5, 0 .. 1), 3) @test isempty(JET.get_reports(JET.report_opt(evaluate, (typeof(B2), Matrix{ComplexF64}, NTuple{2, Float64}, NTuple{2, Int}); diff --git a/test/runtests.jl b/test/runtests.jl index 217e6c9..81c4059 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -8,7 +8,7 @@ if "core" in GROUPS @safetestset "Meshes" include("mesh.jl") @safetestset "Boundary conditions" include("boundary.jl") @safetestset "Periodic B-spline bases" include("bspline.jl") - @safetestset "Clamped and recombined bases" include("basis.jl") + @safetestset "Clamped and recombined bases" include("integration/basis.jl") @safetestset "Mass operators" include("mass.jl") @safetestset "Spline quadrature" include("quadrature.jl") @safetestset "Tensor products" include("tensorproduct.jl")