Skip to content

Commit 3e3cd09

Browse files
committed
test other PRIMA optimizers
1 parent e250d9c commit 3e3cd09

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

ext/MixedModelsPRIMAExt.jl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ function MixedModels.prfit!(m::LinearMixedModel;
1515
end
1616

1717
prima_optimizer!(::Val{:bobyqa}, args...; kwargs...) = PRIMA.bobyqa!(args...; kwargs...)
18-
prima_optimizer!(::Val{:cobyla}, args...; kwargs...) = PRIMA.cobyla(args...; kwargs...)
19-
prima_optimizer!(::Val{:lincoa}, args...; kwargs...) = PRIMA.lincoa(args...; kwargs...)
18+
prima_optimizer!(::Val{:cobyla}, args...; kwargs...) = PRIMA.cobyla!(args...; kwargs...)
19+
prima_optimizer!(::Val{:lincoa}, args...; kwargs...) = PRIMA.lincoa!(args...; kwargs...)
2020

2121
push!(MixedModels.OPTIMIZATION_BACKENDS, :prima)
2222

@@ -61,6 +61,7 @@ function MixedModels.optimize!(m::LinearMixedModel, ::PRIMABackend; progress::Bo
6161
optsum.feval = info.nf
6262
optsum.fmin = info.fx
6363
optsum.returnvalue = Symbol(info.status)
64+
_check_prima_return(info)
6465

6566
return optsum.final, optsum.fmin
6667
end

test/prima.jl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,14 @@ include("modelcache.jl")
1313
@test prmodel.optsum.optimizer == :bobyqa
1414
@test prmodel.optsum.backend == :prima
1515
end
16+
17+
model = first(models(:sleepstudy))
18+
prmodel = LinearMixedModel(formula(model), dataset(:sleepstudy))
19+
prmodel.optsum.backend = :prima
20+
21+
@testset "$optimizer" for optimizer in (:cobyla, :lincoa)
22+
MixedModels.unfit!(prmodel)
23+
prmodel.optsum.optimizer = optimizer
24+
fit!(prmodel)
25+
@test isapprox(loglikelihood(model), loglikelihood(prmodel))
26+
end

0 commit comments

Comments
 (0)