Skip to content

Commit 8d41563

Browse files
committed
updated show methods
1 parent dc5ae34 commit 8d41563

File tree

3 files changed

+96
-19
lines changed

3 files changed

+96
-19
lines changed

src/mimeshow.jl

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -179,21 +179,23 @@ function _markdown(m::MixedModel)
179179
end
180180

181181
function _markdown(s::OptSummary)
182+
optimizer_settings = [["Optimizer", "`$(s.optimizer)`"],
183+
["Backend", "`$(s.backend)`"],
184+
["Lower bounds", string(s.lowerbd)]]
185+
186+
for param in opt_params(Val(s.backend))
187+
push!(optimizer_settings, [string(param), string(getfield(s, param))])
188+
end
189+
182190
rows = [
183191
["", ""],
184192
["**Initialization**", ""],
185193
["Initial parameter vector", string(s.initial)],
186194
["Initial objective value", string(s.finitial)],
187195
["**Optimizer settings** ", ""],
188-
["Optimizer (from NLopt)", "`$(s.optimizer)`"],
189-
["Lower bounds", string(s.lowerbd)],
190-
["`ftol_rel`", string(s.ftol_rel)],
191-
["`ftol_abs`", string(s.ftol_abs)],
192-
["`xtol_rel`", string(s.xtol_rel)],
193-
["`xtol_abs`", string(s.xtol_abs)],
194-
["`initial_step`", string(s.initial_step)],
195-
["`maxfeval`", string(s.maxfeval)],
196-
["`maxtime`", string(s.maxtime)],
196+
optimizer_settings...,
197+
["xtol_zero_abs", string(s.xtol_zero_abs)],
198+
["ftol_zero_abs", string(s.ftol_zero_abs)],
197199
["**Result**", ""],
198200
["Function evaluations", string(s.feval)],
199201
["Final parameter vector", "$(round.(s.final; digits=4))"],

test/mime.jl

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -120,19 +120,34 @@ lrt = likelihoodratiotest(fm0, fm1)
120120
fm1.optsum.finitial = 1784.642296192471
121121
fm1.optsum.final = [0.9292, 0.0182, 0.2226]
122122
fm1.optsum.fmin =1751.9393444647023
123-
out = sprint(show, mime, fm1.optsum)
123+
out = sprint(show, mime, fm1.optsum)
124124
@test startswith(out,"""
125-
| | |
126-
|:------------------------ |:--------------------------- |
127-
| **Initialization** | |
128-
| Initial parameter vector | [1.0, 0.0, 1.0] |
129-
| Initial objective value | 1784.642296192471 |
130-
| **Optimizer settings** | |
131-
| Optimizer (from NLopt) | `LN_BOBYQA` |
132-
| Lower bounds | [0.0, -Inf, 0.0] |""")
125+
| | |
126+
|:------------------------ |:--------------------------- |
127+
| **Initialization** | |
128+
| Initial parameter vector | [1.0, 0.0, 1.0] |
129+
| Initial objective value | 1784.642296192471 |
130+
| **Optimizer settings** | |
131+
| Optimizer | `LN_BOBYQA` |
132+
| Backend | `nlopt` |
133+
| Lower bounds | [0.0, -Inf, 0.0] |
134+
| ftol_rel | 1.0e-12 |
135+
| ftol_abs | 1.0e-8 |
136+
| xtol_rel | 0.0 |
137+
| xtol_abs | [1.0e-10, 1.0e-10, 1.0e-10] |
138+
| initial_step | [0.75, 1.0, 0.75] |
139+
| maxfeval | -1 |
140+
| maxtime | -1.0 |
141+
| xtol_zero_abs | 0.001 |
142+
| ftol_zero_abs | 1.0e-5 |
143+
| **Result** | |
144+
| Function evaluations | 1 |
145+
| Final parameter vector | [0.9292, 0.0182, 0.2226] |
146+
| Final objective value | 1751.9393 |
147+
| Return code | `FTOL_REACHED` |
148+
""")
133149
end
134150

135-
136151
@testset "varcorr" begin
137152

138153
@test sprint(show, mime, VarCorr(fm1)) == """

test/prima.jl

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,63 @@ prmodel.optsum.backend = :prima
2424
fit!(prmodel)
2525
@test isapprox(loglikelihood(model), loglikelihood(prmodel))
2626
end
27+
28+
@testset "optsum show" begin
29+
model = first(models(:contra))
30+
prmodel = unfit!(deepcopy(model))
31+
fit!(prmodel; optimizer=:bobyqa, backend=:prima)
32+
@test isapprox(loglikelihood(model), loglikelihood(prmodel))
33+
34+
optsum = deepcopy(prmodel.optsum)
35+
optsum.final = [0.2612]
36+
optsum.finitial = 2595.85
37+
optsum.fmin = 2486.42
38+
optsum.feval = 17
39+
40+
out = sprint(show, MIME("text/plain"), optsum)
41+
expected = """
42+
Initial parameter vector: [1.0]
43+
Initial objective value: 2595.85
44+
45+
Backend: prima
46+
Optimizer: bobyqa
47+
Lower bounds: [0.0]
48+
rhobeg: 1.0
49+
rhoend: 1.0e-6
50+
maxfeval: -1
51+
52+
Function evaluations: 17
53+
xtol_zero_abs: 0.001
54+
ftol_zero_abs: 1.0e-5
55+
Final parameter vector: [0.2612]
56+
Final objective value: 2486.42
57+
Return code: SMALL_TR_RADIUS
58+
"""
59+
60+
@test startswith(out, expected)
61+
62+
out = sprint(show, MIME("text/markdown"), optsum)
63+
expected = """
64+
| | |
65+
|:------------------------ |:----------------- |
66+
| **Initialization** | |
67+
| Initial parameter vector | [1.0] |
68+
| Initial objective value | 2595.85 |
69+
| **Optimizer settings** | |
70+
| Optimizer | `bobyqa` |
71+
| Backend | `prima` |
72+
| Lower bounds | [0.0] |
73+
| rhobeg | 1.0 |
74+
| rhoend | 1.0e-6 |
75+
| maxfeval | -1 |
76+
| xtol_zero_abs | 0.001 |
77+
| ftol_zero_abs | 1.0e-5 |
78+
| **Result** | |
79+
| Function evaluations | 17 |
80+
| Final parameter vector | [0.2612] |
81+
| Final objective value | 2486.42 |
82+
| Return code | `SMALL_TR_RADIUS` |
83+
"""
84+
85+
@test startswith(out, expected)
86+
end

0 commit comments

Comments
 (0)