diff --git a/src/MultiObjectiveAlgorithms.jl b/src/MultiObjectiveAlgorithms.jl index 0a04a09..c631bb2 100644 --- a/src/MultiObjectiveAlgorithms.jl +++ b/src/MultiObjectiveAlgorithms.jl @@ -132,7 +132,6 @@ function MOI.empty!(model::Optimizer) model.termination_status = MOI.OPTIMIZE_NOT_CALLED model.solve_time = NaN empty!(model.ideal_point) - model.compute_ideal_point = default(ComputeIdealPoint()) return end @@ -142,8 +141,7 @@ function MOI.is_empty(model::Optimizer) isempty(model.solutions) && model.termination_status == MOI.OPTIMIZE_NOT_CALLED && isnan(model.solve_time) && - isempty(model.ideal_point) && - model.compute_ideal_point == default(ComputeIdealPoint()) + isempty(model.ideal_point) end MOI.supports_incremental_interface(::Optimizer) = true diff --git a/test/test_model.jl b/test/test_model.jl index 33cc01f..5560684 100644 --- a/test/test_model.jl +++ b/test/test_model.jl @@ -176,6 +176,13 @@ end function test_ideal_point() for (flag, result) in (true => [0.0, -9.0], false => [NaN, NaN]) model = MOA.Optimizer(HiGHS.Optimizer) + @test MOI.supports(model, MOA.ComputeIdealPoint()) + @test MOI.get(model, MOA.ComputeIdealPoint()) + @test MOI.set(model, MOA.ComputeIdealPoint(), flag) === nothing + @test MOI.get(model, MOA.ComputeIdealPoint()) == flag + # Test that MOI.empty! does not override ComputeIdealPoint + MOI.empty!(model) + @test MOI.get(model, MOA.ComputeIdealPoint()) == flag MOI.set(model, MOI.Silent(), true) x = MOI.add_variables(model, 2) MOI.add_constraint.(model, x, MOI.GreaterThan(0.0)) @@ -187,10 +194,6 @@ function test_ideal_point() -1.0 * x[1] - 2.0 * x[2], ]) MOI.set(model, MOI.ObjectiveFunction{typeof(f)}(), f) - @test MOI.supports(model, MOA.ComputeIdealPoint()) - @test MOI.get(model, MOA.ComputeIdealPoint()) - @test MOI.set(model, MOA.ComputeIdealPoint(), flag) === nothing - @test MOI.get(model, MOA.ComputeIdealPoint()) == flag MOI.optimize!(model) point = MOI.get(model, MOI.ObjectiveBound()) @test length(point) == 2