@@ -830,6 +830,49 @@ function test_nlp_data_error()
830
830
return
831
831
end
832
832
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
+
833
876
function runtests ()
834
877
for name in names (@__MODULE__ ; all = true )
835
878
if ! startswith (" $(name) " , " test_" )
0 commit comments