@@ -9,38 +9,32 @@ addprocs(np - 1)
99
1010@everywhere import ADNLPModels
1111
12- @everywhere const list_problems = intersect (names (ADNLPProblems), names (PureJuMP))
13-
14- # The problems included should be carefully argumented and issues
15- # to create them added.
16- # TODO : tests are limited for JuMP-only problems
17- @everywhere const list_problems_not_ADNLPProblems = Symbol[]
18- @everywhere const list_problems_not_PureJuMP = Symbol[]
19-
20- @everywhere const list_problems_ADNLPProblems = setdiff (list_problems, list_problems_not_ADNLPProblems)
21- @everywhere const list_problems_PureJuMP = setdiff (list_problems, list_problems_not_PureJuMP)
22-
23- @test setdiff (union (names (ADNLPProblems), list_problems_not_ADNLPProblems), list_problems) ==
24- [:ADNLPProblems ]
25- @test setdiff (union (names (PureJuMP), list_problems_not_PureJuMP), list_problems) ==
26- [:PureJuMP ]
27-
28- @everywhere include (" test_utils.jl" )
12+ @everywhere include (" test-defined-problems.jl" )
13+ @everywhere include (" test-utils.jl" )
2914
3015@test ndef == OptimizationProblems. PureJuMP. default_nvar
3116@test ndef == OptimizationProblems. ADNLPProblems. default_nvar
3217
18+ @everywhere function make_ad_nlp (prob:: Symbol ; simp_backend= " " )
19+ mod = ADNLPProblems
20+ if ! isdefined (mod, prob)
21+ error (" Problem $(prob) is not defined in ADNLPProblems on pid $(myid ()) ." )
22+ end
23+ ctor = getfield (mod, prob)
24+ return isempty (simp_backend) ? ctor () : ctor (eval (Meta. parse (simp_backend)))
25+ end
26+
3327@everywhere function test_one_problem (prob:: Symbol )
3428 pb = string (prob)
3529
3630 nvar = OptimizationProblems. eval (Symbol (:get_ , prob, :_nvar ))()
3731 ncon = OptimizationProblems. eval (Symbol (:get_ , prob, :_ncon ))()
3832
3933 nlp_ad = if (nvar + ncon < 10000 )
40- eval (Meta . parse ( " ADNLPProblems. $( prob) () " ) )
34+ make_ad_nlp ( prob)
4135 else
4236 # Avoid SparseADJacobian for too large problem as it requires a lot of memory for CIs
43- eval (Meta . parse ( " ADNLPProblems. $( prob) ( " * simp_backend * " ) " ) )
37+ make_ad_nlp ( prob, simp_backend = simp_backend )
4438 end
4539
4640 @test nlp_ad. meta. name == pb
@@ -62,7 +56,14 @@ addprocs(np - 1)
6256 end
6357
6458 @testset " Test for nls_prob flag for $prob " begin
65- nls_prob = eval (Meta. parse (" ADNLPProblems.$(prob) (use_nls = true)" ))
59+ nls_prob = begin
60+ mod = ADNLPProblems
61+ if isdefined (mod, prob)
62+ getfield (mod, prob)(; use_nls = true )
63+ else
64+ nothing
65+ end
66+ end
6667 if (typeof (nls_prob) <: ADNLPModels.ADNLSModel ) # if the nls_flag is not supported we ignore the prob
6768 test_in_place_residual (prob, nls_prob)
6869 end
0 commit comments