Skip to content

Commit

Permalink
Add solve_time function (#1928)
Browse files Browse the repository at this point in the history
* added ProxSDP to solvers list

* added low accuracy commentary

* Added solve_time function

* typo fix

* better error message

* removing _try_get_solve_time

* added solve_time to docs
  • Loading branch information
guilhermebodin authored and mlubin committed Apr 12, 2019
1 parent d66daee commit 01ee0f9
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/src/solutions.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ JuMP.value
JuMP.dual_status
JuMP.has_duals
JuMP.dual
JuMP.solve_time
OptimizeNotCalled
MOI.optimize!
```
12 changes: 12 additions & 0 deletions src/JuMP.jl
Original file line number Diff line number Diff line change
Expand Up @@ -438,6 +438,18 @@ end

set_optimize_hook(model::Model, f) = (model.optimize_hook = f)

"""
solve_time(model::Model)
If available, returns the solve time reported by the solver.
Returns "ArgumentError: ModelLike of type `Solver.Optimizer` does not support accessing
the attribute MathOptInterface.SolveTime()" if the attribute is
not implemented.
"""
function solve_time(model::Model)
return MOI.get(model, MOI.SolveTime())
end

"""
set_silent(model::Model)
Expand Down
19 changes: 19 additions & 0 deletions test/model.jl
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,25 @@ function test_model()
@test optimizer.b == 2
end

@testset "solve_time" begin
@testset "NoOptimizer()" begin
err = NoOptimizer()
model = Model()
@test_throws err solve_time(model)
end

@testset "OptimizeNotCalled()" begin
err = OptimizeNotCalled()
model = Model(with_optimizer(MOIU.MockOptimizer,
SimpleLPModel{Float64}()))
@test_throws err solve_time(model)
end

@testset "Solved model" begin
# TODO
end
end

@testset "solver_name" begin
@testset "Not attached" begin
model = Model()
Expand Down

0 comments on commit 01ee0f9

Please sign in to comment.