@@ -1704,6 +1704,67 @@ function test_MOI_runtests_No_RSOCModel()
17041704 return
17051705end
17061706
1707+ function test_bridge_selection ()
1708+ mock = MOI. Utilities. MockOptimizer (NoRSOCModel {Float64} ())
1709+ bridged_mock = MOI. Bridges. LazyBridgeOptimizer (mock)
1710+
1711+ MOI. Bridges. add_bridge (
1712+ bridged_mock,
1713+ MOI. Bridges. Constraint. SplitIntervalBridge{Float64},
1714+ )
1715+ MOI. Bridges. add_bridge (
1716+ bridged_mock,
1717+ MOI. Bridges. Constraint. RSOCtoPSDBridge{Float64},
1718+ )
1719+ MOI. Bridges. add_bridge (
1720+ bridged_mock,
1721+ MOI. Bridges. Constraint. SOCtoPSDBridge{Float64},
1722+ )
1723+ MOI. Bridges. add_bridge (
1724+ bridged_mock,
1725+ MOI. Bridges. Constraint. RSOCtoSOCBridge{Float64},
1726+ )
1727+ @test ! (MOI. supports_constraint (
1728+ bridged_mock,
1729+ MOI. VectorAffineFunction{Float64},
1730+ MOI. LogDetConeTriangle,
1731+ ))
1732+ x = MOI. add_variables (bridged_mock, 3 )
1733+ err = MOI. UnsupportedConstraint{
1734+ MOI. VectorAffineFunction{Float64},
1735+ MOI. LogDetConeTriangle,
1736+ }()
1737+ @test_throws err begin
1738+ MOI. Bridges. bridge_type (
1739+ bridged_mock,
1740+ MOI. VectorAffineFunction{Float64},
1741+ MOI. LogDetConeTriangle,
1742+ )
1743+ end
1744+ c = MOI. add_constraint (
1745+ bridged_mock,
1746+ MOI. VectorOfVariables (x),
1747+ MOI. RotatedSecondOrderCone (3 ),
1748+ )
1749+ @test MOI. Bridges. bridge_type (
1750+ bridged_mock,
1751+ MOI. VectorOfVariables,
1752+ MOI. RotatedSecondOrderCone,
1753+ ) == MOI. Bridges. Constraint. RSOCtoSOCBridge{
1754+ Float64,
1755+ MOI. VectorAffineFunction{Float64},
1756+ MOI. VectorOfVariables,
1757+ }
1758+ @test MOI. Bridges. bridge (bridged_mock, c) isa
1759+ MOI. Bridges. Constraint. RSOCtoSOCBridge
1760+ @test bridged_mock. graph. constraint_dist[MOI. Bridges. node (
1761+ bridged_mock,
1762+ MOI. VectorOfVariables,
1763+ MOI. RotatedSecondOrderCone,
1764+ ). index] == 1
1765+ return
1766+ end
1767+
17071768function test_supports ()
17081769 mock = MOI. Utilities. MockOptimizer (NoRSOCModel {Float64} ())
17091770 full_bridged_mock = MOI. Bridges. full_bridge_optimizer (mock, Float64)
0 commit comments