|
91 | 91 | @test getp(sys, f)(newps) isa Matrix{UInt}
|
92 | 92 | @test getp(sys, g)(newps) isa Vector{Float32}
|
93 | 93 |
|
| 94 | +@testset "Type-stability of `remake_buffer`" begin |
| 95 | + prob = ODEProblem(sys, [], (0.0, 1.0), ivs) |
| 96 | + |
| 97 | + idxs = (a, c, d, e, f, g, h) |
| 98 | + vals = (1.0, 2.0, 3, ones(3), ones(Int, 3, 3), ones(2), "a") |
| 99 | + |
| 100 | + setter = setsym_oop(prob, idxs) |
| 101 | + @test_nowarn @inferred setter(prob, vals) |
| 102 | + @test_throws ErrorException @inferred setter(prob, collect(vals)) |
| 103 | + |
| 104 | + idxs = (a, c, e...) |
| 105 | + vals = Float16[1.0, 2.0, 3.0, 4.0, 5.0] |
| 106 | + setter = setsym_oop(prob, idxs) |
| 107 | + @test_nowarn @inferred setter(prob, vals) |
| 108 | + |
| 109 | + idxs = [a, e] |
| 110 | + vals = (Float16(1.0), ForwardDiff.Dual{Nothing, Float16, 0}[1.0, 2.0, 3.0]) |
| 111 | + setter = setsym_oop(prob, idxs) |
| 112 | + @test_nowarn @inferred setter(prob, vals) |
| 113 | +end |
| 114 | + |
94 | 115 | ps = MTKParameters(sys, ivs)
|
95 | 116 | function loss(value, sys, ps)
|
96 | 117 | @test value isa ForwardDiff.Dual
|
|
0 commit comments