Skip to content
This repository was archived by the owner on Feb 26, 2025. It is now read-only.

Commit 2c03604

Browse files
author
damart
committed
Added tests, fix stopping criteria
1 parent 0e34c50 commit 2c03604

File tree

10 files changed

+52
-50
lines changed

10 files changed

+52
-50
lines changed

.idea/.gitignore

Lines changed: 0 additions & 2 deletions
This file was deleted.

.idea/BluePyOpt.iml

Lines changed: 0 additions & 19 deletions
This file was deleted.

.idea/inspectionProfiles/profiles_settings.xml

Lines changed: 0 additions & 6 deletions
This file was deleted.

.idea/misc.xml

Lines changed: 0 additions & 7 deletions
This file was deleted.

.idea/modules.xml

Lines changed: 0 additions & 8 deletions
This file was deleted.

.idea/vcs.xml

Lines changed: 0 additions & 6 deletions
This file was deleted.

bluepyopt/deapext/CMA_MO.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,5 +234,5 @@ def check_termination(self, ngen):
234234
for c in self.stopping_conditions:
235235
if c.criteria_met:
236236
logger.info('CMA stopped because of termination criteria: ' +
237-
' '.join(type(c).__name__))
237+
' '.join(c.name))
238238
self.active = False

bluepyopt/deapext/CMA_SO.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,5 +183,5 @@ def check_termination(self, ngen):
183183
for c in self.stopping_conditions:
184184
if c.criteria_met:
185185
logger.info('CMA stopped because of termination criteria: ' +
186-
' '.join(type(c).__name__))
186+
' '.join(c.name))
187187
self.active = False

bluepyopt/deapext/stoppingCriteria.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ def check(self, kwargs):
4444

4545
class Stagnation(StoppingCriteria):
4646
"""Stagnation stopping criteria class"""
47+
name = "Stagnation"
4748

4849
def __init__(self, lambda_, problem_size):
4950
"""Constructor"""
@@ -79,6 +80,7 @@ def check(self, kwargs):
7980

8081
class TolHistFun(StoppingCriteria):
8182
"""TolHistFun stopping criteria class"""
83+
name = "TolHistFun"
8284

8385
def __init__(self, lambda_, problem_size):
8486
"""Constructor"""
@@ -100,6 +102,7 @@ def check(self, kwargs):
100102

101103
class EqualFunVals(StoppingCriteria):
102104
"""EqualFunVals stopping criteria class"""
105+
name = "EqualFunVals"
103106

104107
def __init__(self, lambda_, problem_size):
105108
"""Constructor"""
@@ -130,6 +133,7 @@ def check(self, kwargs):
130133

131134
class TolX(StoppingCriteria):
132135
"""TolX stopping criteria class"""
136+
name = "TolX"
133137

134138
def __init__(self):
135139
"""Constructor"""
@@ -148,6 +152,7 @@ def check(self, kwargs):
148152

149153
class TolUpSigma(StoppingCriteria):
150154
"""TolUpSigma stopping criteria class"""
155+
name = "TolUpSigma"
151156

152157
def __init__(self, sigma0):
153158
"""Constructor"""
@@ -166,6 +171,7 @@ def check(self, kwargs):
166171

167172
class ConditionCov(StoppingCriteria):
168173
"""ConditionCov stopping criteria class"""
174+
name = "ConditionCov"
169175

170176
def __init__(self):
171177
"""Constructor"""
@@ -183,6 +189,7 @@ def check(self, kwargs):
183189

184190
class NoEffectAxis(StoppingCriteria):
185191
"""NoEffectAxis stopping criteria class"""
192+
name = "NoEffectAxis"
186193

187194
def __init__(self, problem_size):
188195
"""Constructor"""
@@ -207,6 +214,7 @@ def check(self, kwargs):
207214

208215
class NoEffectCoor(StoppingCriteria):
209216
"""NoEffectCoor stopping criteria class"""
217+
name = "NoEffectCoor"
210218

211219
def __init__(self):
212220
"""Constructor"""
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
"""bluepyopt.optimisationsCMA tests"""
2+
3+
import nose.tools as nt
4+
5+
import bluepyopt.optimisations
6+
import bluepyopt.ephys.examples as examples
7+
8+
from nose.plugins.attrib import attr
9+
10+
11+
@attr('unit')
12+
def test_optimisationsCMA_normspace():
13+
"deapext.optimisationsCMA: Testing optimisationsCMA normspace"
14+
15+
evaluator = examples.simplecell.cell_evaluator
16+
optimisation = bluepyopt.deapext.optimisationsCMA.DEAPOptimisationCMA(
17+
evaluator=evaluator)
18+
19+
x = [n*0.1 for n in range(len(evaluator.params))]
20+
y = [f2(f1(_)) for _,f1,f2 in zip(x, optimisation.to_norm,
21+
optimisation.to_space)]
22+
for a, b in zip(x, y):
23+
nt.assert_almost_equal(a, b)
24+
25+
@attr('unit')
26+
def test_optimisationsCMA_run():
27+
"deapext.optimisationsCMA: Testing optimisationsCMA run from centroid"
28+
29+
evaluator = examples.simplecell.cell_evaluator
30+
x = [n * 0.1 for n in range(len(evaluator.params))]
31+
32+
try:
33+
optimisation = bluepyopt.deapext.optimisationsCMA.DEAPOptimisationCMA(
34+
evaluator=evaluator,
35+
centroids=[x])
36+
37+
pop, hof, log, hist = optimisation.run(max_ngen=1)
38+
raised = False
39+
except:
40+
raised = True
41+
42+
nt.assert_equal(raised, False)

0 commit comments

Comments
 (0)