-
Notifications
You must be signed in to change notification settings - Fork 86
/
dummy.jl
30 lines (26 loc) · 1.21 KB
/
dummy.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
import MathOptInterface
const MOI = MathOptInterface
const MOIU = MOI.Utilities
abstract type AbstractDummyModel <: MOI.ModelLike end
function MOI.empty!(::AbstractDummyModel) end
function MOI.copy_to(dest::AbstractDummyModel, src::MOI.ModelLike; copy_names=true)
return MOIU.default_copy_to(dest, src, copy_names)
end
MOI.supports(::AbstractDummyModel, ::MOI.ObjectiveSense) = true
MOI.supports(::AbstractDummyModel, ::MOI.ConstraintPrimalStart,
::Type{<:MOI.ConstraintIndex}) = true
MOI.supports_constraint(::AbstractDummyModel, ::Type{MOI.SingleVariable},
::Type{MOI.EqualTo{Float64}}) = true
MOI.supports_constraint(::AbstractDummyModel, ::Type{MOI.VectorOfVariables},
::Type{MOI.Zeros}) = true
struct DummyModel <: AbstractDummyModel
end
# Implements add_variable and add_constraint
struct DummyModelWithAdd <: AbstractDummyModel
end
MOI.add_variable(::DummyModelWithAdd) = MOI.VariableIndex(0)
MOI.add_variables(::DummyModelWithAdd, n) = fill(MOI.VariableIndex(0), n)
function MOI.add_constraint(::DummyModelWithAdd, ::MOI.SingleVariable,
::MOI.EqualTo{Float64})
return MOI.ConstraintIndex{MOI.SingleVariable, MOI.EqualTo{Float64}}(0)
end