Skip to content

Commit 8e33e5b

Browse files
authored
Merge pull request #54 from JuliaStochOpt/bl/all_parameters
Add all_parameters
2 parents bae8759 + 4154d99 commit 8e33e5b

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/ParameterJuMP.jl

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const MOI = MathOptInterface
99
const MOIU = MOI.Utilities
1010

1111
export
12-
ModelWithParams, ParameterRef, add_parameter, add_parameters, Param
12+
ModelWithParams, ParameterRef, add_parameter, add_parameters, all_parameters, Param
1313

1414
# types
1515
# ------------------------------------------------------------------------------
@@ -234,6 +234,17 @@ function add_parameters(model::JuMP.Model, val::AbstractArray{R,N}) where {R,N}
234234
return out
235235
end
236236

237+
"""
238+
all_parameters(model::JuMP.AbstractModel)::Vector{ParameterRef}
239+
240+
Returns a list of all parameters currently in the model. The parameters are
241+
ordered by creation time.
242+
"""
243+
function all_parameters(model::JuMP.AbstractModel)
244+
data = _getparamdata(model)
245+
return ParameterRef[ParameterRef(ind, model) for ind in data.inds]
246+
end
247+
237248
# solve
238249
# ------------------------------------------------------------------------------
239250

test/tests.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ function test0(args...)
33
m_slave = ModelWithParams(args...)
44

55
x = add_parameters(m_slave, 4.0*ones(2))
6+
@test x == all_parameters(m_slave)
67
@variable(m_slave, y[1:6])
78

89
@constraint(m_slave, ctr1, 3*y[1] >= 2 - 7*x[1])
@@ -203,6 +204,7 @@ function test10(args...)
203204
@test JuMP.dual(α) == -1.0
204205

205206
b = add_parameter(model, -2.0)
207+
@test all_parameters(model) == [α, b]
206208
cref = @constraint(model, x <= b)
207209
JuMP.optimize!(model)
208210
@test JuMP.value(x) == -2.0
@@ -371,6 +373,7 @@ function test14(args...)
371373
@test name(a) == "a"
372374
b = add_parameter(m)
373375
set_name(b, "b")
376+
@test all_parameters(m) == [a, b]
374377

375378
exp1 = x + y + a
376379
@test typeof(exp1) == ParameterJuMP.PAE{Float64}

0 commit comments

Comments
 (0)