Skip to content

Commit 92edac6

Browse files
authored
Add default eval function for NLS (#60)
* Add default eval function for NLS
1 parent eb2e1c1 commit 92edac6

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

src/stats.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,3 +505,4 @@ function get_status(
505505
end
506506

507507
eval_fun(nlp::AbstractNLPModel) = neval_obj(nlp) + neval_cons(nlp)
508+
eval_fun(nls::AbstractNLSModel) = neval_residual(nls) + neval_cons(nls)

test/test_stats.jl

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,3 +163,21 @@ test_stats()
163163
@test get_status(nlp, exception = true) == :exception
164164
@test get_status(nlp) == :unknown
165165
end
166+
167+
@testset "Test get_status for NLS" begin
168+
nlp = ADNLSModel(x -> [x], ones(2), 2)
169+
@test get_status(nlp, optimal = true) == :first_order
170+
@test get_status(nlp, small_residual = true) == :small_residual
171+
@test get_status(nlp, infeasible = true) == :infeasible
172+
@test get_status(nlp, unbounded = true) == :unbounded
173+
@test get_status(nlp, stalled = true) == :stalled
174+
@test get_status(nlp, iter = 8, max_iter = 5) == :max_iter
175+
for i = 1:2
176+
increment!(nlp, :neval_residual)
177+
end
178+
@test get_status(nlp, max_eval = 1) == :max_eval
179+
@test get_status(nlp, elapsed_time = 60.0, max_time = 1.0) == :max_time
180+
@test get_status(nlp, parameter_too_large = true) == :stalled
181+
@test get_status(nlp, exception = true) == :exception
182+
@test get_status(nlp) == :unknown
183+
end

0 commit comments

Comments
 (0)