@@ -830,6 +830,49 @@ function test_nlp_data_error()
830830 return
831831end
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+
833876function runtests ()
834877 for name in names (@__MODULE__ ; all = true )
835878 if ! startswith (" $(name) " , " test_" )
0 commit comments