Skip to content

Commit

Permalink
Fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
blegat committed Dec 21, 2023
1 parent 7348a98 commit 96c04a6
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 19 deletions.
11 changes: 2 additions & 9 deletions src/MOI_wrapper.jl
Original file line number Diff line number Diff line change
Expand Up @@ -451,23 +451,16 @@ function MOI.get(model::Optimizer, ::MOI.TerminationStatus)
end
end

function MOI.get(m::Optimizer, attr::MOI.PrimalStatus)
function MOI.get(m::Optimizer, attr::Union{MOI.PrimalStatus,MOI.DualStatus})
if attr.result_index > MOI.get(m, MOI.ResultCount())
return MOI.NO_SOLUTION
elseif MOI.get(m, MOI.TerminationStatus()) != MOI.LOCALLY_SOLVED
return UNKNOWN_RESULT_STATUS
return MOI.UNKNOWN_RESULT_STATUS
else
return MOI.FEASIBLE_POINT
end
end

function MOI.get(m::Optimizer, attr::MOI.DualStatus)
if attr.result_index > MOI.get(m, MOI.ResultCount())
return MOI.NO_SOLUTION
end
return MOI.FEASIBLE_POINT
end

function MOI.get(model::Optimizer, ::MOI.ResultCount)
if MOI.get(model, MOI.TerminationStatus()) == MOI.OPTIMIZE_NOT_CALLED
return 0
Expand Down
19 changes: 9 additions & 10 deletions test/test_simple.jl
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ function _test_limit(attr, val, term)
MOI.set(model, MOI.RawOptimizerAttribute(attr), val)
MOI.optimize!(model)
@test MOI.get(model, MOI.TerminationStatus()) == term
@test MOI.get(model, MOI.PrimalStatus()) == MOI.UNKNOWN_RESULT_STATUS
@test MOI.get(model, MOI.DualStatus()) == MOI.UNKNOWN_RESULT_STATUS
end

@testset "majiter" begin
Expand Down Expand Up @@ -94,15 +96,12 @@ end
MOI.optimize!(model)
@test MOI.get(model, MOI.RawOptimizerAttribute("majiter")) >=
SDPLR.MAX_MAJITER
MOI.set(model, MOI.RawOptimizerAttribute("majiter"), SDPLR.MAX_MAJITER - 2)
@test MOI.get(model, MOI.RawOptimizerAttribute("majiter")) ==
SDPLR.MAX_MAJITER - 2
MOI.optimize!(model)
@test MOI.get(model, MOI.RawOptimizerAttribute("majiter")) >=
SDPLR.MAX_MAJITER
MOI.set(model, MOI.RawOptimizerAttribute("majiter"), SDPLR.MAX_MAJITER - 2)
@test MOI.get(model, MOI.RawOptimizerAttribute("majiter")) ==
SDPLR.MAX_MAJITER - 2
MOI.optimize!(model)
@test MOI.get(model, MOI.TerminationStatus()) == MOI.ITERATION_LIMIT
for i in 1:5
MOI.set(model, MOI.RawOptimizerAttribute("majiter"), SDPLR.MAX_MAJITER - 2)
@test MOI.get(model, MOI.RawOptimizerAttribute("majiter")) ==
SDPLR.MAX_MAJITER - 2
MOI.optimize!(model)
end
simple_test(model, X, c)
end

0 comments on commit 96c04a6

Please sign in to comment.