Skip to content

Commit 456448b

Browse files
ChrisRackauckas-ClaudeChrisRackauckasclaude
committed
Fix v7 CI: iterate eachindex(sol.u) in dense_tests, source DiffEqDevTools in DelayDiffEq (#3446)
- test/regression/ode_dense_tests.jl Under RecursiveArrayTools v4 `eachindex(sol2)` returns the CartesianIndices over the full solution tensor (u_dims..., nsteps), not the 1:nsteps range it returned under v3. `sol2.u[i]` / `interpolation_results_2d[i]` then tried a 3-index lookup into `Vector{Matrix{Float64}}` and threw `BoundsError [i, j, k]`. Iterate `eachindex(sol2.u)` instead to drive the per-timestep comparison the test actually means. Fixes the Dense Tests errors in Regression_I on 1/1.11/pre. - lib/DelayDiffEq/Project.toml Add `DiffEqDevTools = {path = "../DiffEqDevTools"}` to `[sources]`. DelayDiffEq's test target pulls in path-sourced StochasticDiffEqLowOrder which now pins RecursiveArrayTools v4 (via the v7 SciMLBase/RAT bump). All currently-registered DiffEqDevTools versions restrict RAT to < 4, so the env fails to resolve with ``Unsatisfiable requirements detected for package DiffEqDevTools [f3b72e0c]: restricted by compatibility requirements with RecursiveArrayTools to versions: uninstalled``. The local lib/DiffEqDevTools already declares RAT 4 and SciMLBase 3, so path-sourcing it unblocks the resolve on all four DelayDiffEq test groups (Integrators / Interface / QA / Regression). Scope intentionally narrow: other sublibraries that list DiffEqDevTools in [extras] without [sources] still pass CI because their test envs don't pull in a path package that forces RAT 4; they can be migrated later as the registered SciMLBase-v3 DiffEqDevTools lands. Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent c17987b commit 456448b

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

lib/DelayDiffEq/Project.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ StochasticDiffEqImplicit = {path = "../StochasticDiffEqImplicit"}
5454
StochasticDiffEqLowOrder = {path = "../StochasticDiffEqLowOrder"}
5555
StochasticDiffEqROCK = {path = "../StochasticDiffEqROCK"}
5656
DiffEqBase = {path = "../DiffEqBase"}
57+
DiffEqDevTools = {path = "../DiffEqDevTools"}
5758

5859
[compat]
5960
ADTypes = "1.16"

test/regression/ode_dense_tests.jl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,11 @@ function regression_test(
111111
sol(interpolation_results_2d, interpolation_points)
112112
sol(interpolation_points[1])
113113
sol2 = solve(prob_ode_2Dlinear, alg, dt = 1 // 2^(4), dense = true, adaptive = false)
114-
for i in eachindex(sol2)
114+
# `eachindex(sol2)` now returns `CartesianIndices` over the full solution
115+
# tensor (u_dims..., nsteps) under RecursiveArrayTools v4; iterate the
116+
# timestep axis via `sol2.u` so `sol2.u[i]` / `interpolation_results_2d[i]`
117+
# index the per-step matrix as the test intends.
118+
for i in eachindex(sol2.u)
115119
print_results(
116120
@test maximum(maximum.(abs.(sol2.u[i] - interpolation_results_2d[i]))) <
117121
tol_ode_2Dlinear

0 commit comments

Comments
 (0)