Skip to content

Commit 55a9dc8

Browse files
committed
test: add more parameter dependencies tests
1 parent 5a2705e commit 55a9dc8

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

test/parameter_dependencies.jl

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,25 @@ using NonlinearSolve
4949
@test integ.ps[p2] == 10.0
5050
end
5151

52+
@testset "vector parameter deps" begin
53+
@parameters p1[1:2]=[1.0, 2.0] p2[1:2]=[0.0, 0.0]
54+
@variables x(t) = 0
55+
56+
@named sys = ODESystem(
57+
[D(x) ~ sum(p1) * t + sum(p2)],
58+
t;
59+
parameter_dependencies = [p2 => 2p1]
60+
)
61+
prob = ODEProblem(complete(sys))
62+
setp1! = setp(prob, p1)
63+
get_p1 = getp(prob, p1)
64+
get_p2 = getp(prob, p2)
65+
setp1!(prob, [1.5, 2.5])
66+
67+
@test get_p1(prob) == [1.5, 2.5]
68+
@test get_p2(prob) == [3.0, 5.0]
69+
end
70+
5271
@testset "extend" begin
5372
@parameters p1=1.0 p2=1.0
5473
@variables x(t) = 0
@@ -84,6 +103,20 @@ end
84103
@test get_dep(prob) == 4
85104
end
86105

106+
@testset "getu with vector parameter deps" begin
107+
@parameters p1[1:2]=[1.0, 2.0] p2[1:2]=[0.0, 0.0]
108+
@variables x(t) = 0
109+
110+
@named sys = ODESystem(
111+
[D(x) ~ sum(p1) * t + sum(p2)],
112+
t;
113+
parameter_dependencies = [p2 => 2p1]
114+
)
115+
prob = ODEProblem(complete(sys))
116+
get_dep = getu(prob, 2p1)
117+
@test get_dep(prob) == [2.0, 4.0]
118+
end
119+
87120
@testset "composing systems with parameter deps" begin
88121
@parameters p1=1.0 p2=2.0
89122
@variables x(t) = 0
@@ -109,7 +142,13 @@ end
109142
@test get_v1(prob) == 2
110143
@test get_v2(prob) == 4
111144

145+
setp1! = setp(prob, sys2.p1)
146+
setp1!(prob, 2.5)
147+
@test prob.ps[sys2.p2] == 5.0
148+
112149
new_prob = remake(prob, p = [sys2.p1 => 1.5])
150+
151+
@test !isempty(ModelingToolkit.parameter_dependencies(sys2))
113152
@test new_prob.ps[sys2.p1] == 1.5
114153
@test new_prob.ps[sys2.p2] == 3.0
115154
end

0 commit comments

Comments
 (0)