diff --git a/src/constraint.jl b/src/constraint.jl index 12c4fff..ddf7b9a 100644 --- a/src/constraint.jl +++ b/src/constraint.jl @@ -526,11 +526,12 @@ function appendconedomain( return Mosek.appendsvecpsdconedomain(t, n) end -# Two `SingleVariable`-in-`S` cannot be set to the same variable if -# the two constraints +# Two `VariableIndex`-in-`S` cannot be set to the same variable if the two +# constraints: +# # * both set a lower bound, or -# * both set an upper bound, or -# * both set it to integer. +# * both set an upper bound +# # The `incompatible_mask` are computed according to these rules. flag(::Type{MOI.EqualTo{Float64}}) = 0x1 incompatible_mask(::Type{MOI.EqualTo{Float64}}) = 0x2f @@ -541,7 +542,8 @@ incompatible_mask(::Type{MOI.LessThan{Float64}}) = 0x2d flag(::Type{MOI.Interval{Float64}}) = 0x8 incompatible_mask(::Type{MOI.Interval{Float64}}) = 0x2f flag(::Type{MOI.Integer}) = 0x10 -incompatible_mask(::Type{MOI.Integer}) = 0x30 +# MOI.Integer does not conflict with any othher supported variable set +incompatible_mask(::Type{MOI.Integer}) = 0x00 #flag(::Type{<:VectorCone}) = 0x40 # FIXME unused incompatible_mask(::Type{<:VectorCone}) = 0x40 diff --git a/test/runtests.jl b/test/runtests.jl index a6af0e0..193b259 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -380,11 +380,6 @@ function test_moi_test_runtests_Bridge_Mosek() model, config; exclude = [ - # Cannot put multiple bound sets of the same type on a variable - "test_basic_VectorAffineFunction_Circuit", - "test_basic_VectorOfVariables_Circuit", - "test_basic_VectorQuadraticFunction_Circuit", - "test_cpsat_Circuit", # Evaluated: MathOptInterface.OTHER_ERROR in (MathOptInterface.OPTIMAL, MathOptInterface.INVALID_MODEL) "test_conic_empty_matrix", # Needs a cache to query the ConstraintFunction, and MOI doesn't