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

Commit 5ad7f4d

Browse files
author
Jaquier Aurélien Tristan
committed
add test for load_component using iexpr
1 parent 86e2c14 commit 5ad7f4d

File tree

1 file changed

+42
-1
lines changed

1 file changed

+42
-1
lines changed

bluepyopt/tests/test_ephys/test_parameterscalers.py

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
"""Test ephys.parameterscalers"""
22

33
import json
4-
4+
import pathlib
5+
import tempfile
6+
import arbor
57

68
import pytest
79

@@ -143,3 +145,42 @@ def test_parameterscalers_iexpr_generator_unsupported_attr():
143145
'unsupported attribute tau.'):
144146
iexpr = value_scaler.acc_scale_iexpr(
145147
value=value, constant_formatter=lambda v: '%.9g' % v)
148+
149+
150+
@pytest.mark.unit
151+
def test_parameterscalers_iexpr():
152+
"""ephys.parameterscalers: Test iexpr"""
153+
# iexpr from bluepyopt/tests/test_ephys/test_parameterscalers.py
154+
iexpr = '(sub (scalar 0.62109375) ' \
155+
'(mul (log (pi) ) ' \
156+
'(exp (div (distance (region "soma")) ' \
157+
'(scalar 0.421875) ) ) ) )'
158+
159+
# modified decor as in
160+
# bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_cell_decor.acc
161+
simple_cell_decor_with_iexpr = \
162+
'(arbor-component\n' \
163+
' (meta-data (version "0.9-dev"))\n' \
164+
' (decor\n' \
165+
' (paint (region "soma") ' \
166+
'(membrane-capacitance 0.01 (scalar 1.0)))\n' \
167+
' (paint (region "soma") ' \
168+
'(scaled-mechanism (density (mechanism "default::hh" ' \
169+
'("gnabar" 0.10299326453483033) ("gkbar" 0.027124836082684685))) ' \
170+
f'("gkbar" {iexpr})))))'
171+
172+
with tempfile.TemporaryDirectory() as test_dir:
173+
decor_filename = pathlib.Path(test_dir).joinpath("decor.acc")
174+
with open(decor_filename, "w") as f:
175+
f.write(simple_cell_decor_with_iexpr)
176+
test_decor = arbor.load_component(decor_filename).component
177+
assert test_decor.defaults() == []
178+
assert str(test_decor.paintings()) == \
179+
"""[('(region "soma")', Cm=0.01), """ \
180+
"""('(region "soma")', <arbor.scaled_mechanism<density> """ \
181+
"(mechanism('default::hh', " \
182+
'{"gkbar": 0.0271248, "gnabar": 0.102993}), ' \
183+
'{"gkbar": (sub (scalar 0.621094) (mul (log (scalar 3.14159)) ' \
184+
'(exp (div (distance 1 (region "soma")) ' \
185+
'(scalar 0.421875)))))})>)]'
186+
assert test_decor.placements() == []

0 commit comments

Comments
 (0)