From 06898b982c66ec65009217ef631be7d80500ca0b Mon Sep 17 00:00:00 2001 From: Aayush Sabharwal Date: Mon, 4 May 2026 12:19:07 +0530 Subject: [PATCH 1/2] fix: remove unnecessary `invview` in `rm_eqs_vars!` --- src/interface.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/src/interface.jl b/src/interface.jl index 52e5d17..781e275 100644 --- a/src/interface.jl +++ b/src/interface.jl @@ -237,7 +237,6 @@ function default_rm_eqs_vars!( old_to_new_eq, n_new_eqs = get_old_to_new_idxs(nsrcs(graph), eqs_to_rm) old_to_new_var, n_new_vars = get_old_to_new_idxs(ndsts(graph), vars_to_rm) - diff_to_var = invview(var_to_diff) new_graph = BipartiteGraph(n_new_eqs, n_new_vars) if solvable_graph !== nothing new_solvable_graph = BipartiteGraph(n_new_eqs, n_new_vars) From 7d041c25893fa5634e901cf7c09a68d26e58c3a7 Mon Sep 17 00:00:00 2001 From: Aayush Sabharwal Date: Mon, 4 May 2026 12:22:25 +0530 Subject: [PATCH 2/2] test: test that `rm_eqs_vars!` does not require calling `complete` --- lib/ModelingToolkitTearing/test/runtests.jl | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/ModelingToolkitTearing/test/runtests.jl b/lib/ModelingToolkitTearing/test/runtests.jl index b90f9ef..5e3116e 100644 --- a/lib/ModelingToolkitTearing/test/runtests.jl +++ b/lib/ModelingToolkitTearing/test/runtests.jl @@ -208,3 +208,15 @@ end @test findfirst(isequal(y), ts.fullvars) !== nothing @test !any(eq -> isequal(eq.lhs, y), ts.additional_observed) end + +@testset "`rm_eqs_vars!` does not require calling `complete`" begin + @variables x(t) y(t) + @named sys = System([D(x) ~ 2x + 1, D(y) ~ 2y + 1], t) + ts = TearingState(sys) + xidx = findfirst(isequal(x), ts.fullvars)::Int + dxidx = ts.structure.var_to_diff[xidx]::Int + eqidx = only(đť‘‘neighbors(ts.structure.graph, dxidx))::Int + StateSelection.rm_eqs_vars!(ts, [eqidx], [xidx, dxidx]) + @test length(equations(ts)) == 1 + @test length(ts.fullvars) == 2 +end