@@ -166,6 +166,34 @@ function test_modify_vector_constant_change()
166166 return
167167end
168168
169+ function test_SlackBridge_ObjectiveFunctionValue_2 ()
170+ inner = MOI. Utilities. MockOptimizer (MOI. Utilities. Model {Float64} ())
171+ model = MOI. Bridges. Objective. VectorSlack {Float64} (inner)
172+ x = MOI. add_variable (model)
173+ MOI. add_constraint (model, x, MOI. GreaterThan (1.0 ))
174+ f = MOI. Utilities. operate (vcat, Float64, 1.1 * x - 1.2 )
175+ MOI. set (model, MOI. ObjectiveSense (), MOI. MIN_SENSE)
176+ MOI. set (model, MOI. ObjectiveFunction {typeof(f)} (), f)
177+ MOI. Utilities. set_mock_optimize! (
178+ inner,
179+ mock -> begin
180+ MOI. set (mock, MOI. ResultCount (), 2 )
181+ MOI. set (mock, MOI. TerminationStatus (), MOI. OPTIMAL)
182+ MOI. set (mock, MOI. PrimalStatus (1 ), MOI. FEASIBLE_POINT)
183+ MOI. set (mock, MOI. PrimalStatus (2 ), MOI. FEASIBLE_POINT)
184+ y = MOI. get (mock, MOI. ListOfVariableIndices ())
185+ MOI. set .(mock, MOI. VariablePrimal (1 ), y, [1.0 , - 0.1 ])
186+ MOI. set .(mock, MOI. VariablePrimal (2 ), y, [2.0 , 1.0 ])
187+ end ,
188+ )
189+ MOI. optimize! (model)
190+ @test MOI. get (model, MOI. ObjectiveValue (1 )) ≈ [- 0.1 ]
191+ @test MOI. get (model, MOI. VariablePrimal (1 ), x) ≈ 1.0
192+ @test MOI. get (model, MOI. ObjectiveValue (2 )) ≈ [1.0 ]
193+ @test MOI. get (model, MOI. VariablePrimal (2 ), x) ≈ 2.0
194+ return
195+ end
196+
169197end # module
170198
171199TestObjectiveVectorSlack. runtests ()
0 commit comments