Skip to content

Commit cc31bf3

Browse files
feat: add utility function for obtaining defaults and guesses
1 parent 40626e9 commit cc31bf3

File tree

3 files changed

+9
-5
lines changed

3 files changed

+9
-5
lines changed

src/systems/abstractsystem.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1020,6 +1020,10 @@ function defaults(sys::AbstractSystem)
10201020
isempty(systems) ? defs : mapfoldr(namespace_defaults, merge, systems; init = defs)
10211021
end
10221022

1023+
function defaults_and_guesses(sys::AbstractSystem)
1024+
merge(guesses(sys), defaults(sys))
1025+
end
1026+
10231027
unknowns(sys::Union{AbstractSystem, Nothing}, v) = renamespace(sys, v)
10241028
for vType in [Symbolics.Arr, Symbolics.Symbolic{<:AbstractArray}]
10251029
@eval unknowns(sys::AbstractSystem, v::$vType) = renamespace(sys, v)

test/downstream/linearize.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,13 +121,13 @@ lsyss, _ = ModelingToolkit.linearize_symbolic(pid, [reference.u, measurement.u],
121121
[ctr_output.u])
122122

123123
@test substitute(
124-
lsyss.A, merge(ModelingToolkit.defaults(pid), ModelingToolkit.guesses(pid))) == lsys.A
124+
lsyss.A, ModelingToolkit.defaults_and_guesses(pid)) == lsys.A
125125
@test substitute(
126-
lsyss.B, merge(ModelingToolkit.defaults(pid), ModelingToolkit.guesses(pid))) == lsys.B
126+
lsyss.B, ModelingToolkit.defaults_and_guesses(pid)) == lsys.B
127127
@test substitute(
128-
lsyss.C, merge(ModelingToolkit.defaults(pid), ModelingToolkit.guesses(pid))) == lsys.C
128+
lsyss.C, ModelingToolkit.defaults_and_guesses(pid)) == lsys.C
129129
@test substitute(
130-
lsyss.D, merge(ModelingToolkit.defaults(pid), ModelingToolkit.guesses(pid))) == lsys.D
130+
lsyss.D, ModelingToolkit.defaults_and_guesses(pid)) == lsys.D
131131

132132
# Test with the reverse desired unknown order as well to verify that similarity transform and reoreder_unknowns really works
133133
lsys = ModelingToolkit.reorder_unknowns(lsys, unknowns(ssys), reverse(desired_order))

test/input_output_handling.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ if VERSION >= v"1.8" # :opaque_closure not supported before
145145
x = randn(size(A, 1))
146146
u = randn(size(B, 2))
147147
p = getindex.(
148-
Ref(merge(ModelingToolkit.defaults(ssys), ModelingToolkit.guesses(ssys))),
148+
Ref(ModelingToolkit.defaults_and_guesses(ssys)),
149149
parameters(ssys))
150150
y1 = obsf(x, u, p, 0)
151151
y2 = C * x + D * u

0 commit comments

Comments
 (0)