Skip to content

Commit b057d7e

Browse files
authored
Ignore SlackBridgePrimalDualStart for non-Slack bridge (#2365)
1 parent d7c35ca commit b057d7e

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

src/Bridges/Objective/bridges/slack.jl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,15 @@ end
199199
# Pretend that every model supports, and silently skip in set if unsupported
200200
MOI.supports_fallback(::MOI.ModelLike, ::SlackBridgePrimalDualStart) = true
201201

202+
function MOI.throw_set_error_fallback(
203+
::MOI.ModelLike,
204+
::SlackBridgePrimalDualStart,
205+
::AbstractBridge,
206+
::Nothing,
207+
)
208+
return # Silently ignore for other bridges
209+
end
210+
202211
function MOI.set(
203212
model::MOI.ModelLike,
204213
::SlackBridgePrimalDualStart,

test/Bridges/Objective/slack.jl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,20 @@ function test_deletion_of_variable_in_slacked_objective()
514514
return
515515
end
516516

517+
function test_SlackBridgePrimalDualStart_non_slack()
518+
inner = MOI.Utilities.MockOptimizer(
519+
MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}()),
520+
)
521+
# Should ignore without erroring
522+
MOI.set(inner, MOI.Bridges.Objective.SlackBridgePrimalDualStart(), nothing)
523+
model = MOI.Bridges.Objective.Functionize{Float64}(inner)
524+
x = MOI.add_variable(model)
525+
MOI.set(model, MOI.ObjectiveFunction{typeof(x)}(), x)
526+
# Should ignore without erroring
527+
MOI.set(model, MOI.Bridges.Objective.SlackBridgePrimalDualStart(), nothing)
528+
return
529+
end
530+
517531
function test_SlackBridgePrimalDualStart()
518532
inner = MOI.Utilities.MockOptimizer(
519533
MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}()),

0 commit comments

Comments
 (0)