|
1 | 1 | using ModelingToolkit
|
2 |
| -using ModelingToolkit: SymScope |
3 |
| -using Symbolics: arguments, value |
| 2 | +using ModelingToolkit: SymScope, t_nounits as t, D_nounits as D |
| 3 | +using Symbolics: arguments, value, getname |
4 | 4 | using Test
|
5 | 5 |
|
6 |
| -@independent_variables t |
7 | 6 | @variables a b(t) c d e(t)
|
8 | 7 |
|
9 | 8 | b = ParentScope(b)
|
|
52 | 51 | @test renamed([:foo :bar :baz], c) == Symbol("foo₊c")
|
53 | 52 | @test renamed([:foo :bar :baz], d) == :d
|
54 | 53 |
|
55 |
| -@independent_variables t |
56 | 54 | @parameters a b c d e f
|
57 | 55 | p = [a
|
58 | 56 | ParentScope(b)
|
@@ -84,3 +82,22 @@ arr1 = ODESystem(Equation[], t, [], []; name = :arr1) ∘ arr0
|
84 | 82 | arr_ps = ModelingToolkit.getname.(parameters(arr1))
|
85 | 83 | @test isequal(arr_ps[1], Symbol("xx"))
|
86 | 84 | @test isequal(arr_ps[2], Symbol("arr0₊xx"))
|
| 85 | + |
| 86 | +function Foo(; name, p = 1) |
| 87 | + @parameters p = p |
| 88 | + @variables x(t) |
| 89 | + return ODESystem(D(x) ~ p, t; name) |
| 90 | +end |
| 91 | +function Bar(; name, p = 2) |
| 92 | + @parameters p = p |
| 93 | + @variables x(t) |
| 94 | + @named foo = Foo(; p) |
| 95 | + return ODESystem(D(x) ~ p + t, t; systems = [foo], name) |
| 96 | +end |
| 97 | +@named bar = Bar() |
| 98 | +bar = complete(bar) |
| 99 | +@test length(parameters(bar)) == 2 |
| 100 | +@test sort(getname.(parameters(bar))) == [:foo₊p, :p] |
| 101 | +defs = ModelingToolkit.defaults(bar) |
| 102 | +@test defs[bar.p] == 2 |
| 103 | +@test isequal(defs[bar.foo.p], bar.p) |
0 commit comments