Skip to content

Commit 5b83947

Browse files
committed
replace nlp by minimize
1 parent b8338cc commit 5b83947

4 files changed

Lines changed: 20 additions & 20 deletions

File tree

docs/src/interfaces/ocp_solution_builders.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ This function bridges the gap between different NLP solver backends (Ipopt, MadN
158158
The generic method works with any `SolverCore.AbstractExecutionStats`:
159159

160160
```julia
161-
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, nlp)
161+
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, minimize)
162162
```
163163

164164
Returns:

ext/CTModelsMadNLP.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,16 @@ A 6-element tuple `(objective, iterations, constraints_violation, message, statu
4242
julia> using CTModels, MadNLP, NLPModels
4343
4444
julia> # After solving with MadNLP
45-
julia> obj, iter, viol, msg, stat, success = extract_solver_infos(nlp_solution, nlp)
45+
julia> obj, iter, viol, msg, stat, success = extract_solver_infos(nlp_solution, minimize)
4646
(1.23, 15, 1.0e-6, "MadNLP", :SOLVE_SUCCEEDED, true)
4747
```
4848
"""
4949
function CTModels.extract_solver_infos(
5050
nlp_solution::MadNLP.MadNLPExecutionStats,
51-
nlp::NLPModels.AbstractNLPModel
51+
minimize::Bool, # whether the problem is a minimization problem or not
5252
)
5353
# Get minimization flag and adjust objective sign accordingly
54-
minimize = NLPModels.get_minimize(nlp)
54+
# minimize = NLPModels.get_minimize(nlp)
5555
objective = minimize ? nlp_solution.objective : -nlp_solution.objective
5656

5757
# Extract standard fields

src/nlp/extract_solver_infos.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,15 @@ returns `(objective, ...)` first, but the struct doesn't have an `objective` fie
3838
julia> using CTModels, SolverCore, NLPModels
3939
4040
julia> # After solving an NLP problem with a solver
41-
julia> obj, iter, viol, msg, stat, success = extract_solver_infos(nlp_solution, nlp)
41+
julia> obj, iter, viol, msg, stat, success = extract_solver_infos(nlp_solution, minimize)
4242
(1.23, 15, 1.0e-6, "Ipopt/generic", :first_order, true)
4343
```
4444
4545
See also: [`SolverInfos`](@ref)
4646
"""
4747
function extract_solver_infos(
4848
nlp_solution::SolverCore.AbstractExecutionStats,
49-
::NLPModels.AbstractNLPModel
49+
::Bool, # whether the problem is a minimization problem or not
5050
)
5151
objective = nlp_solution.objective
5252
iterations = nlp_solution.iter

test/nlp/test_extract_solver_infos.jl

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ function test_extract_solver_infos()
3434
@testset "first_order status (success)" begin
3535
nlp_solution = MockExecutionStats(1.23, 15, 1.0e-6, :first_order)
3636
nlp = create_mock_nlp(true)
37-
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, nlp)
37+
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, NLPModels.get_minimize(nlp))
3838

3939
@test obj 1.23
4040
@test iter == 15
@@ -47,7 +47,7 @@ function test_extract_solver_infos()
4747
@testset "acceptable status (success)" begin
4848
nlp_solution = MockExecutionStats(2.34, 20, 1.0e-5, :acceptable)
4949
nlp = create_mock_nlp(true)
50-
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, nlp)
50+
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, NLPModels.get_minimize(nlp))
5151

5252
@test obj 2.34
5353
@test iter == 20
@@ -60,7 +60,7 @@ function test_extract_solver_infos()
6060
@testset "failure status - max_iter" begin
6161
nlp_solution = MockExecutionStats(3.45, 100, 1.0e-3, :max_iter)
6262
nlp = create_mock_nlp(true)
63-
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, nlp)
63+
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, NLPModels.get_minimize(nlp))
6464

6565
@test obj 3.45
6666
@test iter == 100
@@ -73,7 +73,7 @@ function test_extract_solver_infos()
7373
@testset "failure status - infeasible" begin
7474
nlp_solution = MockExecutionStats(4.56, 50, 1.0, :infeasible)
7575
nlp = create_mock_nlp(true)
76-
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, nlp)
76+
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, NLPModels.get_minimize(nlp))
7777

7878
@test obj 4.56
7979
@test iter == 50
@@ -86,7 +86,7 @@ function test_extract_solver_infos()
8686
@testset "failure status - unknown" begin
8787
nlp_solution = MockExecutionStats(5.67, 10, 0.5, :unknown)
8888
nlp = create_mock_nlp(true)
89-
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, nlp)
89+
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, NLPModels.get_minimize(nlp))
9090

9191
@test obj 5.67
9292
@test iter == 10
@@ -102,7 +102,7 @@ function test_extract_solver_infos()
102102
@testset "zero values" begin
103103
nlp_solution = MockExecutionStats(0.0, 0, 0.0, :first_order)
104104
nlp = create_mock_nlp(true)
105-
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, nlp)
105+
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, NLPModels.get_minimize(nlp))
106106

107107
@test obj == 0.0
108108
@test iter == 0
@@ -113,7 +113,7 @@ function test_extract_solver_infos()
113113
@testset "negative objective" begin
114114
nlp_solution = MockExecutionStats(-10.5, 25, 1.0e-8, :first_order)
115115
nlp = create_mock_nlp(true)
116-
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, nlp)
116+
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, NLPModels.get_minimize(nlp))
117117

118118
@test obj -10.5
119119
@test iter == 25
@@ -124,7 +124,7 @@ function test_extract_solver_infos()
124124
@testset "large values" begin
125125
nlp_solution = MockExecutionStats(1e10, 1000, 1e-10, :acceptable)
126126
nlp = create_mock_nlp(true)
127-
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, nlp)
127+
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(nlp_solution, NLPModels.get_minimize(nlp))
128128

129129
@test obj 1e10
130130
@test iter == 1000
@@ -150,7 +150,7 @@ function test_extract_solver_infos()
150150
base_stats.primal_feas = 1.0e-6
151151
base_stats.status = MadNLP.SOLVE_SUCCEEDED
152152

153-
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(base_stats, nlp_min)
153+
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(base_stats, NLPModels.get_minimize(nlp_min))
154154

155155
@test obj 1.23
156156
@test iter == 15
@@ -166,7 +166,7 @@ function test_extract_solver_infos()
166166
base_stats.primal_feas = 1.0e-7
167167
base_stats.status = MadNLP.SOLVE_SUCCEEDED
168168

169-
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(base_stats, nlp_max)
169+
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(base_stats, NLPModels.get_minimize(nlp_max))
170170

171171
@test obj -1.23
172172
@test iter == 20
@@ -182,7 +182,7 @@ function test_extract_solver_infos()
182182
base_stats.primal_feas = 1.0e-5
183183
base_stats.status = MadNLP.SOLVED_TO_ACCEPTABLE_LEVEL
184184

185-
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(base_stats, nlp_min)
185+
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(base_stats, NLPModels.get_minimize(nlp_min))
186186

187187
@test obj 2.34
188188
@test iter == 30
@@ -198,7 +198,7 @@ function test_extract_solver_infos()
198198
base_stats.primal_feas = 1.0e-3
199199
base_stats.status = MadNLP.MAXIMUM_ITERATIONS_EXCEEDED
200200

201-
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(base_stats, nlp_min)
201+
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(base_stats, NLPModels.get_minimize(nlp_min))
202202

203203
@test obj 3.45
204204
@test iter == 100
@@ -214,7 +214,7 @@ function test_extract_solver_infos()
214214
base_stats.primal_feas = 1.0
215215
base_stats.status = MadNLP.INFEASIBLE_PROBLEM_DETECTED
216216

217-
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(base_stats, nlp_min)
217+
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(base_stats, NLPModels.get_minimize(nlp_min))
218218

219219
@test obj 4.56
220220
@test iter == 50
@@ -230,7 +230,7 @@ function test_extract_solver_infos()
230230
base_stats.primal_feas = 1.0e-8
231231
base_stats.status = MadNLP.SOLVE_SUCCEEDED
232232

233-
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(base_stats, nlp_max)
233+
obj, iter, viol, msg, stat, success = CTModels.extract_solver_infos(base_stats, NLPModels.get_minimize(nlp_max))
234234

235235
@test obj 5.67
236236
@test iter == 25

0 commit comments

Comments
 (0)