Skip to content

Move nonfulldiagonal_sparse test to OrdinaryDiffEqDifferentiation#3158

Merged
ChrisRackauckas merged 4 commits intoSciML:masterfrom
ChrisRackauckas-Claude:move-sparse-tests-to-subpackage
Mar 18, 2026
Merged

Move nonfulldiagonal_sparse test to OrdinaryDiffEqDifferentiation#3158
ChrisRackauckas merged 4 commits intoSciML:masterfrom
ChrisRackauckas-Claude:move-sparse-tests-to-subpackage

Conversation

@ChrisRackauckas-Claude
Copy link
Copy Markdown
Contributor

Summary

  • Moves nonfulldiagonal_sparse.jl from the global test suite (InterfaceIII) to OrdinaryDiffEqDifferentiation as a "Sparse" test group
  • Uses a separate test environment (test/sparse/Project.toml) to handle the ComponentArrays dependency without polluting the main subpackage test deps
  • Adds test_groups.toml to OrdinaryDiffEqDifferentiation to enable CI matrix generation for Core, QA, and Sparse groups

Why a separate test env?

ComponentArrays and SparseConnectivityTracer conflict with PreallocationTools (via OrdinaryDiffEqNonlinearSolve) in the current registry compat bounds. The separate env pattern (same as test/downstream/, test/ad/) sidesteps this by using OrdinaryDiffEq as a single source dep.

Not moved (PreallocationTools <-> SparseConnectivityTracer 0.6 registry compat gap):

  • autosparse_detection_tests.jl — needs SparseConnectivityTracer 0.6
  • sparsediff_tests.jl — needs SparseConnectivityTracer 0.6

These can be moved once PreallocationTools updates its SparseConnectivityTracer compat in the General registry.

Test plan

  • Sparse test group passes locally via Pkg.test() with ODEDIFFEQ_TEST_GROUP=Sparse
  • CI passes for OrdinaryDiffEqDifferentiation (Core + Sparse groups)
  • Global InterfaceIII still works without nonfulldiagonal_sparse

🤖 Generated with Claude Code

ChrisRackauckas and others added 4 commits March 17, 2026 18:25
Add a separate "Sparse" test group for OrdinaryDiffEqDifferentiation
that uses its own environment (test/sparse/Project.toml) to handle
the ComponentArrays dependency.

The autosparse_detection and sparsediff tests remain in the global
suite because SparseConnectivityTracer 0.6 conflicts with
PreallocationTools in the current registry compat. This is a known
ecosystem issue that will resolve when PreallocationTools updates
its SparseConnectivityTracer compat bounds.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ackages

Move MTK tests from the global test suite to subpackage-specific
ModelingToolkit test groups with separate environments:

- jacobian_tests.jl → OrdinaryDiffEqDifferentiation (ModelingToolkit group)
- nlstep_tests.jl → OrdinaryDiffEqNonlinearSolve (ModelingToolkit group)
- preconditioners.jl → OrdinaryDiffEqNonlinearSolve (ModelingToolkit group)
- dae_initialize_integration.jl → OrdinaryDiffEqNonlinearSolve (ModelingToolkit group)

Each subpackage gets a test/modelingtoolkit/ directory with its own
Project.toml (similar to test/ad/ and test/downstream/ patterns in
the main test suite) and a test_groups.toml entry for CI matrix generation.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace ModelingToolkit.Symbolics.jacobian_sparsity with a direct
sparsity pattern construction for the 2D Brusselator. The test is
about preconditioner performance with Krylov solvers, not MTK.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The import was a leftover from the original file and causes an error
on Julia LTS (1.10) since dolinsolve is not exported from OrdinaryDiffEqCore.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas merged commit b42e41a into SciML:master Mar 18, 2026
182 of 184 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants