@@ -39,6 +39,15 @@ function Base.convert(::Type{Zero}, s::MOI.EqualTo)
3939 return Zero ()
4040end
4141
42+ # Does not make sense that this is convertible but it's
43+ # just to test `conversion_cost`
44+ function MOI. Bridges. Constraint. conversion_cost (
45+ :: Type{MOI.LessThan{Float64}} ,
46+ :: Type{Zero} ,
47+ )
48+ return 10.0
49+ end
50+
4251const EqualToBridge{T,S1,F} =
4352 MOI. Bridges. Constraint. SetConversionBridge{T,MOI. EqualTo{T},S1,F}
4453
@@ -57,6 +66,33 @@ function test_runtests()
5766 return
5867end
5968
69+ function test_conversion_cost (T = Float64)
70+ model = MOI. Utilities. Model {T} ()
71+ bridged = MOI. Bridges. LazyBridgeOptimizer (model)
72+ MOI. Bridges. add_bridge (
73+ bridged,
74+ MOI. Bridges. Constraint. SetConversionBridge{T,MOI. LessThan{T}},
75+ )
76+ @test MOI. Bridges. bridge_type (bridged, MOI. VariableIndex, Zero) ==
77+ MOI. Bridges. Constraint. SetConversionBridge{
78+ T,
79+ MOI. LessThan{T},
80+ Zero,
81+ MOI. VariableIndex,
82+ }
83+ MOI. Bridges. add_bridge (
84+ bridged,
85+ MOI. Bridges. Constraint. SetConversionBridge{T,MOI. EqualTo{T}},
86+ )
87+ @test MOI. Bridges. bridge_type (bridged, MOI. VariableIndex, Zero) ==
88+ MOI. Bridges. Constraint. SetConversionBridge{
89+ T,
90+ MOI. EqualTo{T},
91+ Zero,
92+ MOI. VariableIndex,
93+ }
94+ end
95+
6096end # module
6197
6298TestConstraintSetConversion. runtests ()
0 commit comments