Skip to content

Commit 42b6ad3

Browse files
authored
Fix supports for AbstractOptimizerAttribute (#196)
1 parent 1dd94d8 commit 42b6ad3

2 files changed

Lines changed: 15 additions & 18 deletions

File tree

src/MOI_wrapper.jl

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -467,20 +467,11 @@ function _dual_status(term::MOI.TerminationStatusCode)
467467
return term
468468
end
469469

470-
function MOI.get(optimizer::DualOptimizer, ::MOI.ObjectiveValue)
471-
return MOI.get(optimizer.dual_problem.dual_model, MOI.DualObjectiveValue())
472-
end
473-
474-
function MOI.get(optimizer::DualOptimizer, ::MOI.DualObjectiveValue)
475-
return MOI.get(optimizer.dual_problem.dual_model, MOI.ObjectiveValue())
476-
end
477-
478-
function MOI.get(optimizer::DualOptimizer, ::MOI.PrimalStatus)
479-
return MOI.get(optimizer.dual_problem.dual_model, MOI.DualStatus())
480-
end
481-
482-
function MOI.get(optimizer::DualOptimizer, ::MOI.DualStatus)
483-
return MOI.get(optimizer.dual_problem.dual_model, MOI.PrimalStatus())
470+
function MOI.supports(
471+
optimizer::DualOptimizer,
472+
attr::MOI.AbstractOptimizerAttribute,
473+
)
474+
return MOI.supports(optimizer.dual_problem.dual_model, attr)
484475
end
485476

486477
function MOI.set(
@@ -491,9 +482,14 @@ function MOI.set(
491482
return MOI.set(optimizer.dual_problem.dual_model, attr, value)
492483
end
493484

494-
function MOI.get(
495-
optimizer::DualOptimizer,
496-
attr::Union{MOI.AbstractModelAttribute,MOI.AbstractOptimizerAttribute},
497-
)
485+
function MOI.get(optimizer::DualOptimizer, attr::MOI.AbstractOptimizerAttribute)
486+
return MOI.get(optimizer.dual_problem.dual_model, attr)
487+
end
488+
489+
# For now we don't support setting arbitrary AbstractModelAttribute because
490+
# we don't know if they need to be modified via the dualization. One example
491+
# would be `MOI.set(model, MOI.ObjectiveFunction{F}(), f)`. We currently
492+
# don't support the incremental interface.
493+
function MOI.get(optimizer::DualOptimizer, attr::MOI.AbstractModelAttribute)
498494
return MOI.get(optimizer.dual_problem.dual_model, attr)
499495
end

test/Tests/test_MOI_wrapper.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878

7979
@testset "attributes" begin
8080
for optimizer in [dual_conic_optimizer; dual_linear_optimizer]
81+
@test MOI.supports(optimizer, MOI.Silent())
8182
before = MOI.get(optimizer, MOI.Silent())
8283
MOI.set(optimizer, MOI.Silent(), !before)
8384
@test MOI.get(optimizer, MOI.Silent()) == !before

0 commit comments

Comments
 (0)