/
polyhedra_to_lp_bridge.jl
37 lines (35 loc) · 1.3 KB
/
polyhedra_to_lp_bridge.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using Test
using JuMP
using Polyhedra
@testset "PolyhedraToLPBridge{$T}" for T in [Float64, Int, BigInt, Rational{BigInt}]
h = HalfSpace(ones(T, 2), one(T)) ∩ HalfSpace(-ones(T, 2), -one(T))
set = Polyhedra.PolyhedraOptSet(h)
S = typeof(set)
Fs = [MOI.VectorOfVariables, MOI.VectorAffineFunction{T}, MOI.VectorQuadraticFunction{T}]
mock = MOI.Utilities.MockOptimizer(MOI.Utilities.Model{T}())
for F in Fs
@test !MOI.supports_constraint(mock, F, S)
end
@testset "LazyBridgeOptimizer" begin
bridged = MOI.Bridges.LazyBridgeOptimizer(mock)
for F in Fs
@test !MOI.supports_constraint(bridged, F, S)
end
MOI.Bridges.add_bridge(bridged, Polyhedra.PolyhedraToLPBridge{T})
for F in Fs
@test MOI.supports_constraint(bridged, F, S)
end
x = MOI.add_constrained_variables(bridged, set)
end
@testset "LazyBridgeOptimizer" begin
bridged = MOI.Bridges.full_bridge_optimizer(mock, T)
for F in Fs
@test !MOI.supports_constraint(bridged, F, S)
end
MOI.Bridges.add_bridge(bridged, Polyhedra.PolyhedraToLPBridge{T})
for F in Fs
@test MOI.supports_constraint(bridged, F, S)
end
x = MOI.add_constrained_variables(bridged, set)
end
end