Skip to content

Commit 954ab1b

Browse files
committed
fix namespace_expr type bug and add test
1 parent a9275a0 commit 954ab1b

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

src/systems/abstractsystem.jl

+3-3
Original file line numberDiff line numberDiff line change
@@ -188,11 +188,11 @@ function namespace_expr(O::Sym,name,ivname)
188188
O.name == ivname ? O : rename(O,renamespace(name,O.name))
189189
end
190190

191-
function namespace_expr(O::Term,name,ivname)
191+
function namespace_expr(O::Term{T},name,ivname) where {T}
192192
if O.op isa Sym
193-
Term{Real}(rename(O.op,renamespace(name,O.op.name)),namespace_expr.(O.args,name,ivname))
193+
Term{T}(rename(O.op,renamespace(name,O.op.name)),namespace_expr.(O.args,name,ivname))
194194
else
195-
Term{Real}(O.op,namespace_expr.(O.args,name,ivname))
195+
Term{T}(O.op,namespace_expr.(O.args,name,ivname))
196196
end
197197
end
198198
namespace_expr(O,name,ivname) = O

test/variable_utils.jl

+11
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,14 @@ expr = (((1 / β - 1) + δ) / α) ^ (1 / (α - 1))
1111
sol = ModelingToolkit.substitute(expr, s)
1212
new = (((1 / β - 1) + δ) / γ) ^ (1 /- 1))
1313
@test iszero(sol - new)
14+
15+
# test namespace_expr
16+
@parameters t a p(t)
17+
pterm = p.val
18+
pnsp = ModelingToolkit.namespace_expr(pterm, :namespace, :t)
19+
@test typeof(pterm) == typeof(pnsp)
20+
@test ModelingToolkit.getname(pnsp) == Symbol("namespace₊p")
21+
asym = a.val
22+
ansp = ModelingToolkit.namespace_expr(asym, :namespace, :t)
23+
@test typeof(asym) == typeof(ansp)
24+
@test ModelingToolkit.getname(ansp) == Symbol("namespace₊a")

0 commit comments

Comments
 (0)