|  | 
| 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