Skip to content

Commit ead3edb

Browse files
committed
fix #475
1 parent af86f8c commit ead3edb

File tree

2 files changed

+7
-11
lines changed

2 files changed

+7
-11
lines changed

src/utils.jl

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -117,19 +117,12 @@ substitute(expr::Operation, s::Vector)
117117
Performs the substitution `Operation => val` on the `expr` Operation.
118118
"""
119119
substitute(expr::Constant, s) = expr
120-
substitute(expr::Operation, s::Pair) = _substitute(expr, [s[1]], [s[2]])
121-
substitute(expr::Operation, dict::Dict) = _substitute(expr, keys(dict), values(dict))
122-
substitute(expr::Operation, s::Vector) = _substitute(expr, first.(s), last.(s))
120+
substitute(expr::Operation, s::Pair) = substituter([s[1] => s[2]])(expr)
121+
substitute(expr::Operation, s::Union{Vector, Dict}) = substituter(s)(expr)
123122

124-
function _substitute(ks, vs)
125-
expr -> _substitute(expr, Dict(map(Pair, map(to_symbolic, ks), map(to_symbolic, vs))))
126-
end
127-
128-
function substituter(ks, vs)
129-
dict = Dict(map(Pair, map(to_symbolic, ks), map(to_symbolic, vs)))
123+
function substituter(pairs)
124+
dict = Dict(to_symbolic(k) => to_symbolic(v) for (k, v) in pairs)
130125
expr -> to_mtk(SymbolicUtils.simplify(SymbolicUtils.substitute(expr, dict)))
131126
end
132127

133-
_substitute(expr, ks, vs) = substituter(ks, vs)(expr)
134-
135128
@deprecate substitute_expr!(expr,s) substitute(expr,s)

test/simplify.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,6 @@ d3 = Differential(x)(d2)
2929

3030
@test simplified_expr(expand_derivatives(d3)) == :(0)
3131
@test simplified_expr(simplify(x^0)) == :(1)
32+
33+
@test ModelingToolkit.substitute(2x + y == 1, Dict(x => 0.0, y => 0.0)).value === false
34+
@test ModelingToolkit.substitute(2x + y == 1, Dict(x => 0.0, y => 1.0)).value === true

0 commit comments

Comments
 (0)