Skip to content

Commit c5e8240

Browse files
test: test type-stability of remake_buffer in supported cases
1 parent 96694de commit c5e8240

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

test/mtkparameters.jl

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,27 @@ end
9191
@test getp(sys, f)(newps) isa Matrix{UInt}
9292
@test getp(sys, g)(newps) isa Vector{Float32}
9393

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+
94115
ps = MTKParameters(sys, ivs)
95116
function loss(value, sys, ps)
96117
@test value isa ForwardDiff.Dual

0 commit comments

Comments
 (0)