Skip to content

Commit e032c50

Browse files
Merge pull request #166 from easyscience/develop
Release: merge develop into master
2 parents b59ec44 + 6d464d2 commit e032c50

3 files changed

Lines changed: 27 additions & 5 deletions

File tree

src/easydynamics/sample_model/components/mixins.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ def _create_area_parameter(
7474
stacklevel=3,
7575
)
7676
else:
77-
area.min = minimum_area
77+
if area.min < minimum_area:
78+
area.min = minimum_area
7879

7980
return area
8081

@@ -130,7 +131,7 @@ def _create_center_parameter(
130131
raise ValueError('center must be None, a finite number or a Parameter')
131132

132133
center = Parameter(name=name + ' center', value=float(center), unit=unit)
133-
if enforce_minimum_center:
134+
if enforce_minimum_center and center.min < DHO_MINIMUM_CENTER:
134135
center.min = DHO_MINIMUM_CENTER
135136
return center
136137

@@ -192,6 +193,7 @@ def _create_width_parameter(
192193
raise ValueError(
193194
f'The {param_name} of a {self.__class__.__name__} must be greater than zero.'
194195
)
195-
width.min = minimum_width
196+
if width.min < minimum_width:
197+
width.min = minimum_width
196198

197199
return width

tests/unit/easydynamics/sample_model/components/test_gaussian.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,20 +197,32 @@ def test_convert_unit(self, gaussian: Gaussian):
197197
assert gaussian.width.value == pytest.approx(0.6 * 1e3)
198198

199199
def test_copy(self, gaussian: Gaussian):
200-
# WHEN THEN
200+
# WHEN
201+
gaussian.area.min = 0.5
202+
gaussian.width.min = 0.1
203+
gaussian.area.fixed = True
204+
gaussian.area.max = 5.0
205+
206+
# THEN
201207
gaussian_copy = copy(gaussian)
202208
# EXPECT
203209
assert gaussian_copy is not gaussian
204210
assert gaussian_copy.display_name == gaussian.display_name
205211

206212
assert gaussian_copy.area.value == gaussian.area.value
207213
assert gaussian_copy.area.fixed == gaussian.area.fixed
214+
assert gaussian_copy.area.min == gaussian.area.min
215+
assert gaussian_copy.area.max == gaussian.area.max
208216

209217
assert gaussian_copy.center.value == gaussian.center.value
210218
assert gaussian_copy.center.fixed == gaussian.center.fixed
219+
assert gaussian_copy.center.min == gaussian.center.min
220+
assert gaussian_copy.center.max == gaussian.center.max
211221

212222
assert gaussian_copy.width.value == gaussian.width.value
213223
assert gaussian_copy.width.fixed == gaussian.width.fixed
224+
assert gaussian_copy.width.min == gaussian.width.min
225+
assert gaussian_copy.width.max == gaussian.width.max
214226

215227
assert gaussian_copy.unit == gaussian.unit
216228

tests/unit/easydynamics/sample_model/test_component_collection.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -475,9 +475,17 @@ def test_from_dict(self, component_collection):
475475
def test_copy(self, component_collection):
476476
# WHEN
477477
component_collection.temperature = 300
478+
component_collection.components[0].area.min = 0.5
479+
component_collection.components[0].area.fixed = True
480+
component_collection.components[0].area.max = 5.0
481+
component_collection.components[1].width.min = 0.1
482+
component_collection.components[1].width.fixed = True
483+
component_collection.components[1].width.max = 2.0
484+
485+
# THEN
478486
model_copy = copy(component_collection)
479487

480-
# THEN: collection-level checks
488+
# EXPECT collection-level checks
481489
assert model_copy is not component_collection
482490
assert model_copy.display_name == component_collection.display_name
483491
assert len(model_copy.components) == len(component_collection.components)

0 commit comments

Comments
 (0)