Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/Bridges/Constraint/bridges/IntegerToZeroOneBridge.jl
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,10 @@ function MOI.get(::MOI.ModelLike, ::MOI.ConstraintSet, ::IntegerToZeroOneBridge)
end

function MOI.delete(model::MOI.ModelLike, bridge::IntegerToZeroOneBridge)
if isnothing(bridge.last_bounds)
# Final touch not called yet, so we don't need to delete anything.
return
end
MOI.delete(model, bridge.ci)
MOI.delete(model, bridge.y)
return
Expand Down
12 changes: 12 additions & 0 deletions test/Bridges/Constraint/test_IntegerToZeroOneBridge.jl
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,18 @@ function test_final_touch_twice()
return
end

function test_delete_before_final_touch()
inner = MOI.Utilities.Model{Int}()
model = MOI.Bridges.Constraint.IntegerToZeroOne{Int}(inner)
x, cx = MOI.add_constrained_variable(model, MOI.Integer())
MOI.add_constraint(model, x, MOI.Interval(1, 3))
MOI.delete(model, x)
@test !MOI.is_valid(model, x)
@test !MOI.is_valid(model, cx)
MOI.Bridges.final_touch(model)
return
end

end # module

TestConstraintIntegerToZeroOne.runtests()
Loading