Skip to content

Commit c16c776

Browse files
committed
Tests with an inner model
1 parent 778e029 commit c16c776

File tree

1 file changed

+22
-32
lines changed

1 file changed

+22
-32
lines changed

test/Utilities/copy.jl

Lines changed: 22 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -160,31 +160,20 @@ end
160160

161161

162162
mutable struct OrderingConstrainedVariablesModel <: MOI.ModelLike
163-
lastConstraintIndex ::Int
164-
lastVarIndex ::Int
165-
OrderingConstrainedVariablesModel() = new(0, 0)
163+
constraintIndices ::Array{MOI.ConstraintIndex}
164+
inner ::MOIU.Model{Float64}
165+
OrderingConstrainedVariablesModel() = new(MOI.ConstraintIndex[], MOIU.Model{Float64}())
166166
end
167167

168168

169169

170-
function MOI.add_variables(model::OrderingConstrainedVariablesModel, n)
171-
m = model.lastVarIndex
172-
model.lastVarIndex += n
173-
return MOI.VariableIndex.(m .+ (1:n))
174-
end
175-
function MOI.add_variable(model::OrderingConstrainedVariablesModel)
176-
return MOI.VariableIndex.(model.lastVarIndex += 1)
177-
end
170+
MOI.add_variables(model::OrderingConstrainedVariablesModel, n) = MOI.add_variables(model.inner, n)
171+
MOI.add_variable(model::OrderingConstrainedVariablesModel) = MOI.add_variable(model.inner)
178172

179-
function MOI.add_constraint(model::OrderingConstrainedVariablesModel,
180-
func::MOI.VectorOfVariables,
181-
set::MOI.AbstractVectorSet)
182-
return MOI.ConstraintIndex{typeof(func), typeof(set)}(model.lastConstraintIndex += 1)
183-
end
184-
function MOI.add_constraint(model::OrderingConstrainedVariablesModel,
185-
func::MOI.SingleVariable,
186-
set::MOI.AbstractScalarSet)
187-
return MOI.ConstraintIndex{typeof(func), typeof(set)}(model.lastConstraintIndex += 1)
173+
function MOI.add_constraint(model::OrderingConstrainedVariablesModel, f::F, s::S) where {F<:MOI.AbstractFunction, S<:MOI.AbstractSet}
174+
ci = MOI.add_constraint(model.inner, f, s)
175+
push!(model.constraintIndices, ci)
176+
return ci
188177
end
189178

190179
function MOI.copy_to(dest::OrderingConstrainedVariablesModel, src::MOI.ModelLike; kws...)
@@ -194,8 +183,8 @@ end
194183
MOIU.supports_default_copy_to(model::OrderingConstrainedVariablesModel, ::Bool) = true
195184

196185
function MOI.empty!(model::OrderingConstrainedVariablesModel)
197-
model.lastConstraintIndex = 0
198-
model.lastVarIndex = 0
186+
model.constraintIndices = MOI.ConstraintIndex[]
187+
MOI.empty!(model.inner)
199188
end
200189

201190

@@ -205,11 +194,12 @@ MOI.supports_add_constrained_variables(::OrderingConstrainedVariablesModel, ::Ty
205194
MOI.supports_constraint(::OrderingConstrainedVariablesModel, ::Type{MOI.VectorOfVariables}, ::Type{MOI.Nonnegatives}) = true
206195
MOI.supports_add_constrained_variables(::OrderingConstrainedVariablesModel, ::Type{MOI.Nonpositives}) = false
207196

208-
MOI.supports_constraint(::OrderingConstrainedVariablesModel, ::Type{MOI.SingleVariable}, ::Type{MOI.GreaterThan}) = false
209-
MOI.supports_add_constrained_variable(::OrderingConstrainedVariablesModel, ::Type{MOI.GreaterThan}) = true
197+
MOI.supports_constraint(::OrderingConstrainedVariablesModel, ::Type{MOI.SingleVariable}, ::Type{MOI.GreaterThan{Float64}}) = true
198+
MOI.supports_add_constrained_variable(::OrderingConstrainedVariablesModel, ::Type{MOI.GreaterThan{Float64}}) = false
199+
200+
MOI.supports_constraint(::OrderingConstrainedVariablesModel, ::Type{MOI.SingleVariable}, ::Type{MOI.LessThan{Float64}}) = false
201+
MOI.supports_add_constrained_variable(::OrderingConstrainedVariablesModel, ::Type{MOI.LessThan{Float64}}) = true
210202

211-
MOI.supports_constraint(::OrderingConstrainedVariablesModel, ::Type{MOI.SingleVariable}, ::Type{MOI.LessThan}) = true
212-
MOI.supports_add_constrained_variable(::OrderingConstrainedVariablesModel, ::Type{MOI.LessThan}) = false
213203

214204
@testset "Create variables using supports_add_constrained_variable(s) (#987)" begin
215205
# With vectors
@@ -220,17 +210,17 @@ MOI.supports_add_constrained_variable(::OrderingConstrainedVariablesModel, ::Typ
220210

221211
index_map = MOI.copy_to(dest, src)
222212

223-
@test index_map[c1].value == 2
224-
@test index_map[c2].value == 1
213+
@test typeof(c1) == typeof(dest.constraintIndices[2])
214+
@test typeof(c2) == typeof(dest.constraintIndices[1])
225215

226216
# With single variables
227217
src = MOIU.Model{Float64}()
228-
a, c1 = MOI.add_constrained_variable(src, MOI.LessThan(5.0))
229-
c2 = MOI.add_constraint(src, a, MOI.GreaterThan(1.0))
218+
a, c1 = MOI.add_constrained_variable(src, MOI.GreaterThan{Float64}(5.0))
219+
c2 = MOI.add_constraint(src, a, MOI.LessThan{Float64}(1.0))
230220
dest = OrderingConstrainedVariablesModel()
231221

232222
index_map = MOI.copy_to(dest, src)
233223

234-
@test index_map[c1].value == 2
235-
@test index_map[c2].value == 1
224+
@test typeof(c1) == typeof(dest.constraintIndices[2])
225+
@test typeof(c2) == typeof(dest.constraintIndices[1])
236226
end

0 commit comments

Comments
 (0)