Skip to content

Move interface tests to Differentiation and NonlinearSolve subpackages#3156

Merged
ChrisRackauckas merged 1 commit intoSciML:masterfrom
ChrisRackauckas-Claude:move-tests-to-subpackages
Mar 17, 2026
Merged

Move interface tests to Differentiation and NonlinearSolve subpackages#3156
ChrisRackauckas merged 1 commit intoSciML:masterfrom
ChrisRackauckas-Claude:move-tests-to-subpackages

Conversation

@ChrisRackauckas-Claude
Copy link
Copy Markdown
Contributor

Summary

  • Moves 10 test files from the global test suite to OrdinaryDiffEqDifferentiation and OrdinaryDiffEqNonlinearSolve subpackages
  • These tests now only run when their respective subpackage changes, rather than on every PR
  • Significantly reduces CI cost for changes that don't touch differentiation or nonlinear solve code

Tests moved to OrdinaryDiffEqDifferentiation (3 files):

  • differentiation_traits_tests.jl — jacobian/tgrad trait dispatch, AD backend selection
  • autodiff_error_tests.jl — error handling when AD fails (FirstAutodiffJacError, etc.)
  • nojac_tests.jl — verifying no jacobian config allocated with Krylov solvers

Tests moved to OrdinaryDiffEqNonlinearSolve (7 files):

  • linear_nonlinear_tests.jl — preconditioner interaction with nonlinear solvers
  • linear_solver_tests.jl — KLU/UMFPACK/Krylov linear solver selection
  • linear_solver_split_ode_tests.jl — SplitODEProblem with custom linsolve
  • mass_matrix_tests.jl — mass matrices with NLFunctional/NLAnderson/NLNewton
  • wprototype_tests.jl — W matrix prototypes with SciMLOperators
  • dae_initialization_tests.jl — ShampineCollocationInit/BrownFullBasicInit
  • checkinit_tests.jl — CheckInit validation for DAEs

Tests kept in global suite (require special environments):

  • autosparse_detection_tests.jl — SparseConnectivityTracer dep conflict with PreallocationTools
  • gpu_autodiff_interface_tests.jl — requires GPU env (JLArrays)
  • nonfulldiagonal_sparse.jl — requires ComponentArrays
  • AD tests — require Enzyme/Zygote/Mooncake env
  • ModelingToolkit tests — downstream dependency, needs separate work

Test plan

  • OrdinaryDiffEqDifferentiation tests pass locally
  • OrdinaryDiffEqNonlinearSolve tests pass in CI
  • Global test suite still works with removed tests
  • Verify sublibrary CI detects changes correctly

🤖 Generated with Claude Code

…fEqNonlinearSolve

Move tests from the global test suite to their respective subpackages so they
only run when the relevant subpackage changes, reducing CI cost.

Tests moved to OrdinaryDiffEqDifferentiation:
- differentiation_traits_tests.jl (from InterfaceI)
- autodiff_error_tests.jl (from InterfaceIV)
- nojac_tests.jl (from InterfaceIII)

Tests moved to OrdinaryDiffEqNonlinearSolve:
- linear_nonlinear_tests.jl (from InterfaceII)
- linear_solver_tests.jl (from InterfaceII)
- linear_solver_split_ode_tests.jl (from InterfaceII)
- mass_matrix_tests.jl (from InterfaceII)
- wprototype_tests.jl (from InterfaceII)
- dae_initialization_tests.jl (from InterfaceV)
- checkinit_tests.jl (from InterfaceII)

Tests kept in global suite (require special envs):
- autosparse_detection_tests.jl (SparseConnectivityTracer dep conflict)
- gpu_autodiff_interface_tests.jl (GPU env)
- nonfulldiagonal_sparse.jl (ComponentArrays dep)
- AD tests (Enzyme/Zygote/Mooncake env)
- ModelingToolkit tests (downstream dep)

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas merged commit 9539ed3 into SciML:master Mar 17, 2026
178 of 181 checks passed
@oscardssmith
Copy link
Copy Markdown
Member

Why did this PR add rather than move the tests? Shouldn't they be removed from the OrdinaryDiffEq/test folder?

@ChrisRackauckas
Copy link
Copy Markdown
Member

Oops that's my bad, I made sure they were removed from Runtests but orphaned them 😅 will fix.

ChrisRackauckas-Claude pushed a commit to ChrisRackauckas-Claude/OrdinaryDiffEq.jl that referenced this pull request Mar 18, 2026
These 7 test files in test/interface/ were copied to
OrdinaryDiffEqDifferentiation and OrdinaryDiffEqNonlinearSolve
subpackages in PR SciML#3156 but the originals were never removed.
They are no longer referenced by test/runtests.jl.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit that referenced this pull request Mar 18, 2026
…interface-tests

Delete orphaned test files moved to subpackages in #3156
singhharsh1708 pushed a commit to singhharsh1708/OrdinaryDiffEq.jl that referenced this pull request Mar 25, 2026
These 7 test files in test/interface/ were copied to
OrdinaryDiffEqDifferentiation and OrdinaryDiffEqNonlinearSolve
subpackages in PR SciML#3156 but the originals were never removed.
They are no longer referenced by test/runtests.jl.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
singhharsh1708 pushed a commit to singhharsh1708/OrdinaryDiffEq.jl that referenced this pull request Mar 30, 2026
These 7 test files in test/interface/ were copied to
OrdinaryDiffEqDifferentiation and OrdinaryDiffEqNonlinearSolve
subpackages in PR SciML#3156 but the originals were never removed.
They are no longer referenced by test/runtests.jl.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.

3 participants