@@ -1583,6 +1583,69 @@ function test_unsupported_nonlinear_operator()
1583
1583
return
1584
1584
end
1585
1585
1586
+ function test_delete_variable_with_bounds ()
1587
+ for sets in (
1588
+ (MOI. LessThan (1.0 ),),
1589
+ (MOI. GreaterThan (1.0 ),),
1590
+ (MOI. EqualTo (1.0 ),),
1591
+ (MOI. Interval (1.0 , 2.0 ),),
1592
+ (MOI. GreaterThan (1.0 ), MOI. LessThan (2.0 )),
1593
+ )
1594
+ model = SCIP. Optimizer ()
1595
+ x = MOI. add_variable (model)
1596
+ for set in sets
1597
+ MOI. add_constraint (model, x, set)
1598
+ end
1599
+ ret = MOI. get (model, MOI. ListOfConstraintTypesPresent ())
1600
+ @test length (ret) == length (sets)
1601
+ for set in sets
1602
+ (MOI. VariableIndex, typeof (set)) in ret
1603
+ end
1604
+ MOI. delete (model, x)
1605
+ @test isempty (MOI. get (model, MOI. ListOfConstraintTypesPresent ()))
1606
+ end
1607
+ return
1608
+ end
1609
+
1610
+ function test_BoundAlreadySet ()
1611
+ model = SCIP. Optimizer ()
1612
+ x = MOI. add_variable (model)
1613
+ MOI. add_constraint (model, x, MOI. GreaterThan (1.0 ))
1614
+ MOI. add_constraint (model, x, MOI. LessThan (2.0 ))
1615
+ @test_throws (
1616
+ MOI. LowerBoundAlreadySet,
1617
+ MOI. add_constraint (model, x, MOI. GreaterThan (1.0 )),
1618
+ )
1619
+ @test_throws (
1620
+ MOI. UpperBoundAlreadySet,
1621
+ MOI. add_constraint (model, x, MOI. LessThan (1.0 )),
1622
+ )
1623
+ return
1624
+ end
1625
+
1626
+ function test_delete_bounds ()
1627
+ model = SCIP. Optimizer ()
1628
+ x = MOI. add_variable (model)
1629
+ c_l = MOI. add_constraint (model, x, MOI. GreaterThan (1.0 ))
1630
+ c_u = MOI. add_constraint (model, x, MOI. LessThan (2.0 ))
1631
+ MOI. delete (model, c_u)
1632
+ MOI. add_constraint (model, x, MOI. LessThan (3.0 ))
1633
+ @test MOI. get (model, MOI. ConstraintSet (), c_u) == MOI. LessThan (3.0 )
1634
+ MOI. delete (model, c_l)
1635
+ MOI. add_constraint (model, x, MOI. GreaterThan (- 1.0 ))
1636
+ @test MOI. get (model, MOI. ConstraintSet (), c_l) == MOI. GreaterThan (- 1.0 )
1637
+ return
1638
+ end
1639
+
1640
+ function test_get_binary_with_bounds ()
1641
+ model = SCIP. Optimizer ()
1642
+ x = MOI. add_variable (model)
1643
+ c = MOI. add_constraint (model, x, MOI. Interval (0.5 , 1.1 ))
1644
+ MOI. add_constraint (model, x, MOI. ZeroOne ())
1645
+ @test MOI. get (model, MOI. ConstraintSet (), c) == MOI. Interval (0.5 , 1.1 )
1646
+ return
1647
+ end
1648
+
1586
1649
end # module TestMOIWrapper
1587
1650
1588
1651
TestMOIWrapper. runtests ()
0 commit comments