@@ -278,6 +278,53 @@ function test_copy_to_start()
278
278
@test MOI. get (dest, MOI. VariablePrimalStart (), index_map[x]) == - 1.0
279
279
end
280
280
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
+
281
328
end # module
282
329
283
330
TestConstraintQuadToSOC. runtests ()
0 commit comments