@@ -278,6 +278,53 @@ function test_copy_to_start()
278278 @test MOI. get (dest, MOI. VariablePrimalStart (), index_map[x]) == - 1.0
279279end
280280
281+ function test_deletion_of_variable_in_bridged_constraint ()
282+ inner = MOI. Utilities. Model {Float64} ()
283+ model = MOI. Bridges. Constraint. QuadtoSOC {Float64} (inner)
284+ x = MOI. add_variables (model, 2 )
285+ MOI. set (model, MOI. VariableName (), x, [" x" , " y" ])
286+ f = 1.0 * x[1 ] * x[1 ] + 1.0 * x[2 ] * x[2 ]
287+ c = MOI. add_constraint (model, f, MOI. LessThan (1.0 ))
288+ MOI. delete (model, x[1 ])
289+ @test MOI. get (model, MOI. ConstraintFunction (), c) ≈ 1.0 * x[2 ] * x[2 ]
290+ return
291+ end
292+
293+ MOI. Utilities. @model (
294+ Model2153,
295+ (),
296+ (MOI. EqualTo,),
297+ (MOI. RotatedSecondOrderCone,),
298+ (),
299+ (),
300+ (MOI. ScalarAffineFunction,),
301+ (MOI. VectorOfVariables,),
302+ (),
303+ )
304+
305+ function MOI. supports (
306+ :: Model2153{T} ,
307+ :: MOI.ObjectiveFunction{MOI.ScalarQuadraticFunction{T}} ,
308+ ) where {T}
309+ return false
310+ end
311+
312+ function test_deletion_of_variable_in_bridged_slacked_objective ()
313+ model = MOI. Bridges. full_bridge_optimizer (Model2153 {Float64} (), Float64)
314+ MOI. Bridges. add_bridge (
315+ model,
316+ MOI. Bridges. Constraint. QuadtoSOCBridge{Float64},
317+ )
318+ x = MOI. add_variables (model, 2 )
319+ MOI. set (model, MOI. VariableName (), x, [" x" , " y" ])
320+ f = 1.0 * x[1 ] * x[1 ] + 1.0 * x[2 ] * x[2 ]
321+ MOI. set (model, MOI. ObjectiveSense (), MOI. MIN_SENSE)
322+ MOI. set (model, MOI. ObjectiveFunction {typeof(f)} (), f)
323+ MOI. delete (model, x[1 ])
324+ @test MOI. get (model, MOI. ObjectiveFunction {typeof(f)} ()) ≈ 1.0 * x[2 ] * x[2 ]
325+ return
326+ end
327+
281328end # module
282329
283330TestConstraintQuadToSOC. runtests ()
0 commit comments