Skip to content

Commit a390555

Browse files
authored
Improve coverage in optimizer_interface.jl (#3059)
1 parent 41b1336 commit a390555

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

test/model.jl

+43
Original file line numberDiff line numberDiff line change
@@ -830,6 +830,49 @@ function test_nlp_data_error()
830830
return
831831
end
832832

833+
function test_reset_optimizer()
834+
direct = direct_model(
835+
MOI.Utilities.MockOptimizer(MOI.Utilities.Model{Float64}()),
836+
)
837+
@test_throws(
838+
ErrorException(
839+
"The `$(MOI.Utilities.reset_optimizer)` function is not " *
840+
"supported in DIRECT mode.",
841+
),
842+
MOI.Utilities.reset_optimizer(direct),
843+
)
844+
inner = MOI.Utilities.Model{Float64}()
845+
model = Model(() -> MOI.Utilities.MockOptimizer(inner))
846+
@variable(model, x >= 0)
847+
@objective(model, Min, x)
848+
@test MOI.is_empty(inner)
849+
MOI.Utilities.attach_optimizer(model)
850+
@test !MOI.is_empty(inner)
851+
MOI.Utilities.reset_optimizer(model)
852+
@test MOI.is_empty(inner)
853+
return
854+
end
855+
856+
function test_drop_optimizer()
857+
direct = direct_model(
858+
MOI.Utilities.MockOptimizer(MOI.Utilities.Model{Float64}()),
859+
)
860+
@test_throws(
861+
ErrorException(
862+
"The `$(MOI.Utilities.drop_optimizer)` function is not supported " *
863+
"in DIRECT mode.",
864+
),
865+
MOI.Utilities.drop_optimizer(direct),
866+
)
867+
model = Model() do
868+
return MOI.Utilities.MockOptimizer(MOI.Utilities.Model{Float64}())
869+
end
870+
@test solver_name(model) == "Mock"
871+
MOI.Utilities.drop_optimizer(model)
872+
@test solver_name(model) == "No optimizer attached."
873+
return
874+
end
875+
833876
function runtests()
834877
for name in names(@__MODULE__; all = true)
835878
if !startswith("$(name)", "test_")

0 commit comments

Comments
 (0)