Skip to content

Commit 8080def

Browse files
fixup! test: test remaking of initialization problem
1 parent f62a340 commit 8080def

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
@@ -509,33 +509,47 @@ end
509509
pmap[p] = 2q
510510
prob = ODEProblem(sys, u0map, (0.0, 1.0), pmap)
511511
test_parameter(prob, p, 2.0)
512+
prob2 = remake(prob; u0 = u0map, p = pmap)
513+
prob2.ps[p] = 0.0
514+
test_parameter(prob2, p, 2.0)
512515
# `missing` default, provided guess
513516
@mtkbuild sys = ODESystem(
514517
[D(x) ~ x, p ~ x + y], t; defaults = [p => missing], guesses = [p => 0.0])
515518
prob = ODEProblem(sys, u0map, (0.0, 1.0))
516519
test_parameter(prob, p, 2.0)
517520
test_initializesystem(sys, u0map, pmap, p, 0 ~ p - x - y)
521+
prob2 = remake(prob; u0 = u0map, p = pmap)
522+
prob2.ps[p] = 0.0
523+
test_parameter(prob2, p, 2.0)
518524

519525
# `missing` to ODEProblem, equation from default
520526
@mtkbuild sys = ODESystem([D(x) ~ x * q, D(y) ~ y * p], t; defaults = [p => 2q])
521527
pmap[p] = missing
522528
prob = ODEProblem(sys, u0map, (0.0, 1.0), pmap)
523529
test_parameter(prob, p, 2.0)
524530
test_initializesystem(sys, u0map, pmap, p, 0 ~ 2q - p)
531+
prob2 = remake(prob; u0 = u0map, p = pmap)
532+
prob2.ps[p] = 0.0
525533
test_parameter(prob2, p, 2.0)
526534
# `missing` to ODEProblem, provided guess
527535
@mtkbuild sys = ODESystem(
528536
[D(x) ~ x, p ~ x + y], t; guesses = [p => 0.0])
529537
prob = ODEProblem(sys, u0map, (0.0, 1.0), pmap)
530538
test_parameter(prob, p, 2.0)
531539
test_initializesystem(sys, u0map, pmap, p, 0 ~ x + y - p)
540+
prob2 = remake(prob; u0 = u0map, p = pmap)
541+
prob2.ps[p] = 0.0
542+
test_parameter(prob2, p, 2.0)
532543

533544
# No `missing`, default and guess
534545
@mtkbuild sys = ODESystem([D(x) ~ x * q, D(y) ~ y * p], t; defaults = [p => 2q], guesses = [p => 0.0])
535546
delete!(pmap, p)
536547
prob = ODEProblem(sys, u0map, (0.0, 1.0), pmap)
537548
test_parameter(prob, p, 2.0)
538549
test_initializesystem(sys, u0map, pmap, p, 0 ~ 2q - p)
550+
prob2 = remake(prob; u0 = u0map, p = pmap)
551+
prob2.ps[p] = 0.0
552+
test_parameter(prob2, p, 2.0)
539553

540554
# Should not be solved for:
541555

@@ -591,7 +605,7 @@ end
591605

592606
@testset "Re-creating initialization problem on remake" begin
593607
@variables x(t) y(t)
594-
@parameters p
608+
@parameters p q
595609
@mtkbuild sys = ODESystem(
596610
[D(x) ~ x, p ~ x + y], t; defaults = [p => missing], guesses = [x => 0.0, p => 0.0])
597611
prob = ODEProblem(sys, [x => 1.0, y => 1.0], (0.0, 1.0))
@@ -608,12 +622,4 @@ end
608622
@test solve(prob4, Tsit5()).retcode == ReturnCode.InitialFailure
609623
prob5 = remake(prob)
610624
@test init(prob, Tsit5()).ps[p] 2.0
611-
612-
@mtkbuild sys = ODESystem([D(x) ~ x, p ~ x + y], t; guesses = [p => 0.0])
613-
prob = ODEProblem(sys, [x => 1.0, y => 1.0], (0.0, 1.0), [p => 2.0])
614-
# No value for `p`, not `missing`
615-
@test_throws ModelingToolkit.MissingParametersError remake(
616-
prob; u0 = [x => 1.0, y => 3x])
617-
prob2 = remake(prob; u0 = [x => 1.0, y => 2x + exp(t)], p = [p => missing])
618-
@test init(prob2, Tsit5()).ps[p] 4.0
619625
end

0 commit comments

Comments
 (0)