Skip to content

Commit 9a789dd

Browse files
authored
Fix iteraction between ComputeIdealPoint and MOI.empty! (#98)
1 parent f476ac3 commit 9a789dd

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

src/MultiObjectiveAlgorithms.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,6 @@ function MOI.empty!(model::Optimizer)
132132
model.termination_status = MOI.OPTIMIZE_NOT_CALLED
133133
model.solve_time = NaN
134134
empty!(model.ideal_point)
135-
model.compute_ideal_point = default(ComputeIdealPoint())
136135
return
137136
end
138137

@@ -142,8 +141,7 @@ function MOI.is_empty(model::Optimizer)
142141
isempty(model.solutions) &&
143142
model.termination_status == MOI.OPTIMIZE_NOT_CALLED &&
144143
isnan(model.solve_time) &&
145-
isempty(model.ideal_point) &&
146-
model.compute_ideal_point == default(ComputeIdealPoint())
144+
isempty(model.ideal_point)
147145
end
148146

149147
MOI.supports_incremental_interface(::Optimizer) = true

test/test_model.jl

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,13 @@ end
176176
function test_ideal_point()
177177
for (flag, result) in (true => [0.0, -9.0], false => [NaN, NaN])
178178
model = MOA.Optimizer(HiGHS.Optimizer)
179+
@test MOI.supports(model, MOA.ComputeIdealPoint())
180+
@test MOI.get(model, MOA.ComputeIdealPoint())
181+
@test MOI.set(model, MOA.ComputeIdealPoint(), flag) === nothing
182+
@test MOI.get(model, MOA.ComputeIdealPoint()) == flag
183+
# Test that MOI.empty! does not override ComputeIdealPoint
184+
MOI.empty!(model)
185+
@test MOI.get(model, MOA.ComputeIdealPoint()) == flag
179186
MOI.set(model, MOI.Silent(), true)
180187
x = MOI.add_variables(model, 2)
181188
MOI.add_constraint.(model, x, MOI.GreaterThan(0.0))
@@ -187,10 +194,6 @@ function test_ideal_point()
187194
-1.0 * x[1] - 2.0 * x[2],
188195
])
189196
MOI.set(model, MOI.ObjectiveFunction{typeof(f)}(), f)
190-
@test MOI.supports(model, MOA.ComputeIdealPoint())
191-
@test MOI.get(model, MOA.ComputeIdealPoint())
192-
@test MOI.set(model, MOA.ComputeIdealPoint(), flag) === nothing
193-
@test MOI.get(model, MOA.ComputeIdealPoint()) == flag
194197
MOI.optimize!(model)
195198
point = MOI.get(model, MOI.ObjectiveBound())
196199
@test length(point) == 2

0 commit comments

Comments
 (0)