| 
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