Skip to content

Commit ceb4e9c

Browse files
fixup! test: test remaking of initialization problem
1 parent cd88a3e commit ceb4e9c

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

test/initializationsystem.jl

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -576,33 +576,47 @@ sol = solve(oprob_2nd_order_2, Rosenbrock23()) # retcode: Success
576576
pmap[p] = 2q
577577
prob = ODEProblem(sys, u0map, (0.0, 1.0), pmap)
578578
test_parameter(prob, p, 2.0)
579+
prob2 = remake(prob; u0 = u0map, p = pmap)
580+
prob2.ps[p] = 0.0
581+
test_parameter(prob2, p, 2.0)
579582
# `missing` default, provided guess
580583
@mtkbuild sys = ODESystem(
581584
[D(x) ~ x, p ~ x + y], t; defaults = [p => missing], guesses = [p => 0.0])
582585
prob = ODEProblem(sys, u0map, (0.0, 1.0))
583586
test_parameter(prob, p, 2.0)
584587
test_initializesystem(sys, u0map, pmap, p, 0 ~ p - x - y)
588+
prob2 = remake(prob; u0 = u0map, p = pmap)
589+
prob2.ps[p] = 0.0
590+
test_parameter(prob2, p, 2.0)
585591

586592
# `missing` to ODEProblem, equation from default
587593
@mtkbuild sys = ODESystem([D(x) ~ x * q, D(y) ~ y * p], t; defaults = [p => 2q])
588594
pmap[p] = missing
589595
prob = ODEProblem(sys, u0map, (0.0, 1.0), pmap)
590596
test_parameter(prob, p, 2.0)
591597
test_initializesystem(sys, u0map, pmap, p, 0 ~ 2q - p)
598+
prob2 = remake(prob; u0 = u0map, p = pmap)
599+
prob2.ps[p] = 0.0
592600
test_parameter(prob2, p, 2.0)
593601
# `missing` to ODEProblem, provided guess
594602
@mtkbuild sys = ODESystem(
595603
[D(x) ~ x, p ~ x + y], t; guesses = [p => 0.0])
596604
prob = ODEProblem(sys, u0map, (0.0, 1.0), pmap)
597605
test_parameter(prob, p, 2.0)
598606
test_initializesystem(sys, u0map, pmap, p, 0 ~ x + y - p)
607+
prob2 = remake(prob; u0 = u0map, p = pmap)
608+
prob2.ps[p] = 0.0
609+
test_parameter(prob2, p, 2.0)
599610

600611
# No `missing`, default and guess
601612
@mtkbuild sys = ODESystem([D(x) ~ x * q, D(y) ~ y * p], t; defaults = [p => 2q], guesses = [p => 0.0])
602613
delete!(pmap, p)
603614
prob = ODEProblem(sys, u0map, (0.0, 1.0), pmap)
604615
test_parameter(prob, p, 2.0)
605616
test_initializesystem(sys, u0map, pmap, p, 0 ~ 2q - p)
617+
prob2 = remake(prob; u0 = u0map, p = pmap)
618+
prob2.ps[p] = 0.0
619+
test_parameter(prob2, p, 2.0)
606620

607621
# Should not be solved for:
608622

@@ -658,7 +672,7 @@ end
658672

659673
@testset "Re-creating initialization problem on remake" begin
660674
@variables x(t) y(t)
661-
@parameters p
675+
@parameters p q
662676
@mtkbuild sys = ODESystem(
663677
[D(x) ~ x, p ~ x + y], t; defaults = [p => missing], guesses = [x => 0.0, p => 0.0])
664678
prob = ODEProblem(sys, [x => 1.0, y => 1.0], (0.0, 1.0))
@@ -675,12 +689,4 @@ end
675689
@test solve(prob4, Tsit5()).retcode == ReturnCode.InitialFailure
676690
prob5 = remake(prob)
677691
@test init(prob, Tsit5()).ps[p] 2.0
678-
679-
@mtkbuild sys = ODESystem([D(x) ~ x, p ~ x + y], t; guesses = [p => 0.0])
680-
prob = ODEProblem(sys, [x => 1.0, y => 1.0], (0.0, 1.0), [p => 2.0])
681-
# No value for `p`, not `missing`
682-
@test_throws ModelingToolkit.MissingParametersError remake(
683-
prob; u0 = [x => 1.0, y => 3x])
684-
prob2 = remake(prob; u0 = [x => 1.0, y => 2x + exp(t)], p = [p => missing])
685-
@test init(prob2, Tsit5()).ps[p] 4.0
686692
end

0 commit comments

Comments
 (0)