Add downstream ODE regression test for immutable-outer VectorOfArray - #637
Merged
ChrisRackauckas merged 1 commit intoAug 3, 2026
Conversation
Covers the full solve path from SciML/OrdinaryDiffEq.jl#1365: a VectorOfArray backed by an SVector of vectors, solved in place with Tsit5 and Rosenbrock23, checking retcode, preserved container type and accuracy against the analytic solution. Also un-breaks the nested ArrayPartition Rodas5 test. That path was fixed by OrdinaryDiffEqRosenbrock v2.6.1, so the @test_broken now errors with "Unexpected Pass" on current versions; the compat floor in the Downstream env is raised to match. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
This was referenced Aug 3, 2026
ChrisRackauckas
marked this pull request as ready for review
August 3, 2026 17:27
Member
Author
|
CI confirms the
#638 changes nothing but The remaining red checks are identical on both PRs and unrelated to
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Please ignore until reviewed by @ChrisRackauckas.
Follow-up to #636, which fixed
recursivecopyfor aVectorOfArraywhose outer storage is immutable. With that fix on master the original MWE from SciML/OrdinaryDiffEq.jl#1365 now solves end to end, but nothing in the test suite covers the ODE path — PR #636 only unit-testedrecursivecopy. This adds that coverage intest/Downstream/odesolve.jl: an in-place solve ofVectorOfArray(SVector{2}([randn(5), randn(5)]))withTsit5andRosenbrock23, checking the return code, that the outerSVectorstorage is preserved through tosol.u[end], and accuracy against the analytic solution.Also flips the nested-
ArrayPartitionRodas5@test_brokento@test. That path was fixed upstream inOrdinaryDiffEqRosenbrockv2.6.1, so on current versions the@test_brokenreportsUnexpected Pass, which errors the testset —test/Downstreamis red on master today independent of this PR. Bisected across registered versions locally:OrdinaryDiffEqRosenbrockv2.4.2 and v2.6.0:MethodError: Cannot convert an object of type Vector{Float64} to an object of type ArrayPartition{...}ReturnCode.Success, deterministic over repeated runsThe compat floor in the Downstream test env is raised to
2.6.1to match.Verification
Run locally on Julia 1.11.9 against master + this change,
RecursiveArrayToolsdev'd,OrdinaryDiffEqv7.2.1,OrdinaryDiffEqRosenbrockv2.6.3:Before the change the same file errors on the
@test_broken:The new test also fails as expected against released
RecursiveArrayToolsv4.3.5 (without PR #636), atrecursivecopyinsrc/utils.jl:38:Runic formatted.
Links
🤖 Generated with Claude Code
https://claude.ai/code/session_018DPqBz4Qyy7bZzXZ3sjF45