Skip to content

Commit a1df359

Browse files
committed
Update
1 parent fabb24b commit a1df359

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

test/Bridges/lazy_bridge_optimizer.jl

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1704,6 +1704,67 @@ function test_MOI_runtests_No_RSOCModel()
17041704
return
17051705
end
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+
17071768
function test_supports()
17081769
mock = MOI.Utilities.MockOptimizer(NoRSOCModel{Float64}())
17091770
full_bridged_mock = MOI.Bridges.full_bridge_optimizer(mock, Float64)

0 commit comments

Comments
 (0)