Skip to content

Commit 0a822ac

Browse files
committed
tests: fix optimizer usage
1 parent 7a69dfd commit 0a822ac

5 files changed

Lines changed: 29 additions & 21 deletions

File tree

test/Project.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ JuliaFormatter = "98e50ef6-434e-11e9-1051-2b60c6c9e899"
66
LazyArtifacts = "4af54fe1-eca0-43a8-85a7-787d91b784e3"
77
LineSearches = "d3d80556-e9d4-5f37-9878-2ab0fcc64255"
88
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
9+
NLopt = "76087f3c-5699-56af-9a33-bf431cd00edd"
910
Optim = "429524aa-4258-5aef-a3af-852621145aeb"
1011
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
1112
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"

test/examples/political_democracy/by_parts.jl

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ loss_ml = SemLoss(ml)
2525
loss_wls = SemLoss(wls)
2626

2727
# optimizer -------------------------------------------------------------------------------------
28-
optimizer_obj = semoptimizer()
28+
optimizer_obj = SemOptimizer(engine = opt_engine)
2929

3030
# models -----------------------------------------------------------------------------------
3131

@@ -148,10 +148,11 @@ end
148148
### test hessians
149149
############################################################################################
150150

151-
if semoptimizer == SemOptimizerOptim
151+
if opt_engine == :Optim
152152
using Optim, LineSearches
153153

154-
optimizer_obj = SemOptimizerOptim(
154+
optimizer_obj = SemOptimizer(
155+
engine = opt_engine,
155156
algorithm = Newton(;
156157
linesearch = BackTracking(order = 3),
157158
alphaguess = InitialHagerZhang(),
@@ -218,7 +219,7 @@ loss_ml = SemLoss(ml)
218219
loss_wls = SemLoss(wls)
219220

220221
# optimizer -------------------------------------------------------------------------------------
221-
optimizer_obj = semoptimizer()
222+
optimizer_obj = SemOptimizer(engine = opt_engine)
222223

223224
# models -----------------------------------------------------------------------------------
224225
model_ml = Sem(observed, imply_ram, loss_ml, optimizer_obj)

test/examples/political_democracy/constraints.jl

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# NLopt constraints ------------------------------------------------------------------------
2+
using NLopt
23

34
# 1.5*x1 == x2 (aka 1.5*x1 - x2 == 0)
45
#= function eq_constraint(x, grad)
@@ -20,12 +21,13 @@ function ineq_constraint(x, grad)
2021
0.6 - x[30] * x[31]
2122
end
2223

23-
constrained_optimizer = SemOptimizerNLopt(;
24+
constrained_optimizer = SemOptimizer(;
25+
engine = :NLopt,
2426
algorithm = :AUGLAG,
2527
local_algorithm = :LD_LBFGS,
2628
options = Dict(:xtol_rel => 1e-4),
27-
# equality_constraints = NLoptConstraint(;f = eq_constraint, tol = 1e-14),
28-
inequality_constraints = NLoptConstraint(; f = ineq_constraint, tol = 1e-8),
29+
# equality_constraints = (f = eq_constraint, tol = 1e-14),
30+
inequality_constraints = (f = ineq_constraint, tol = 0.0),
2931
)
3032

3133
model_ml_constrained =
@@ -38,7 +40,8 @@ solution_constrained = sem_fit(model_ml_constrained)
3840
model_ml_maxeval = Sem(
3941
specification = spec,
4042
data = dat,
41-
optimizer = SemOptimizerNLopt,
43+
optimizer = SemOptimizer,
44+
engine = :NLopt,
4245
options = Dict(:maxeval => 10),
4346
)
4447

test/examples/political_democracy/constructor.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
using Statistics: cov, mean
2+
using NLopt
23

34
############################################################################################
45
### models w.o. meanstructure
56
############################################################################################
67

8+
semoptimizer = SemOptimizer(engine = opt_engine)
9+
710
model_ml = Sem(specification = spec, data = dat, optimizer = semoptimizer)
811
@test SEM.params(model_ml.imply.ram_matrices) == SEM.params(spec)
912

@@ -166,7 +169,7 @@ end
166169
### test hessians
167170
############################################################################################
168171

169-
if semoptimizer == SemOptimizerOptim
172+
if opt_engine == :Optim
170173
using Optim, LineSearches
171174

172175
model_ls = Sem(

test/examples/political_democracy/political_democracy.jl

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -136,22 +136,22 @@ start_test = [fill(1.0, 11); fill(0.05, 3); fill(0.05, 6); fill(0.5, 8); fill(0.
136136
start_test_mean =
137137
[fill(1.0, 11); fill(0.05, 3); fill(0.05, 6); fill(0.5, 8); fill(0.05, 3); fill(0.1, 7)]
138138

139-
semoptimizer = SemOptimizerOptim
139+
opt_engine = :Optim
140140
@testset "RAMMatrices | constructor | Optim" begin
141141
include("constructor.jl")
142142
end
143143

144-
semoptimizer = SemOptimizerNLopt
144+
opt_engine = :NLopt
145145
@testset "RAMMatrices | constructor | NLopt" begin
146146
include("constructor.jl")
147147
end
148148

149149
if is_extended_tests()
150-
semoptimizer = SemOptimizerOptim
150+
opt_engine = :Optim
151151
@testset "RAMMatrices | parts | Optim" begin
152152
include("by_parts.jl")
153153
end
154-
semoptimizer = SemOptimizerNLopt
154+
opt_engine = :NLopt
155155
@testset "RAMMatrices | parts | NLopt" begin
156156
include("by_parts.jl")
157157
end
@@ -173,21 +173,21 @@ spec_mean = ParameterTable(spec_mean)
173173
partable = spec
174174
partable_mean = spec_mean
175175

176-
semoptimizer = SemOptimizerOptim
176+
opt_engine = :Optim
177177
@testset "RAMMatrices → ParameterTable | constructor | Optim" begin
178178
include("constructor.jl")
179179
end
180-
semoptimizer = SemOptimizerNLopt
180+
opt_engine = :NLopt
181181
@testset "RAMMatrices → ParameterTable | constructor | NLopt" begin
182182
include("constructor.jl")
183183
end
184184

185185
if is_extended_tests()
186-
semoptimizer = SemOptimizerOptim
186+
opt_engine = :Optim
187187
@testset "RAMMatrices → ParameterTable | parts | Optim" begin
188188
include("by_parts.jl")
189189
end
190-
semoptimizer = SemOptimizerNLopt
190+
opt_engine = :NLopt
191191
@testset "RAMMatrices → ParameterTable | parts | NLopt" begin
192192
include("by_parts.jl")
193193
end
@@ -260,21 +260,21 @@ start_test = [fill(0.5, 8); fill(0.05, 3); fill(1.0, 11); fill(0.05, 9)]
260260
start_test_mean =
261261
[fill(0.5, 8); fill(0.05, 3); fill(1.0, 11); fill(0.05, 3); fill(0.05, 13)]
262262

263-
semoptimizer = SemOptimizerOptim
263+
opt_engine = :Optim
264264
@testset "Graph → ParameterTable | constructor | Optim" begin
265265
include("constructor.jl")
266266
end
267-
semoptimizer = SemOptimizerNLopt
267+
opt_engine = :NLopt
268268
@testset "Graph → ParameterTable | constructor | NLopt" begin
269269
include("constructor.jl")
270270
end
271271

272272
if is_extended_tests()
273-
semoptimizer = SemOptimizerOptim
273+
opt_engine = :Optim
274274
@testset "Graph → ParameterTable | parts | Optim" begin
275275
include("by_parts.jl")
276276
end
277-
semoptimizer = SemOptimizerNLopt
277+
opt_engine = :NLopt
278278
@testset "Graph → ParameterTable | parts | NLopt" begin
279279
include("by_parts.jl")
280280
end

0 commit comments

Comments
 (0)