Source code for bmtk.tests.simulator.bionet.test_nrn
import pytest
from .conftest import *
[docs]@pytest.mark.skipif(not nrn_installed, reason='NEURON is not installed')
def test_weight():
def wmax(v1, v2):
return max(v1, v2)
def wmin(v1, v2):
return min(v1, v2)
add_weight_function(wmax)
add_weight_function(wmin, 'minimum')
assert('wmax' in py_modules.synaptic_weights)
assert('minimum' in py_modules.synaptic_weights)
assert('wmin' not in py_modules.synaptic_weights)
wmax_fnc = py_modules.synaptic_weight('wmax')
assert(wmax_fnc(1, 2) == 2)
wmin_fnc = py_modules.synaptic_weight('minimum')
assert(wmin_fnc(1, 2) == 1)
py_modules.clear()
[docs]@pytest.mark.skipif(not nrn_installed, reason='NEURON is not installed')
def test_weight_decorator():
@synaptic_weight
def wmax(v1, v2):
return max(v1, v2)
@synaptic_weight(name='minimum')
def wmin(v1, v2):
return min(v1, v2)
assert('wmax' in py_modules.synaptic_weights)
assert('minimum' in py_modules.synaptic_weights)
assert('wmin' not in py_modules.synaptic_weights)
wmax_fnc = py_modules.synaptic_weight('wmax')
assert(wmax_fnc(1, 2) == 2)
wmin_fnc = py_modules.synaptic_weight('minimum')
assert(wmin_fnc(1, 2) == 1)
py_modules.clear()
[docs]@pytest.mark.skipif(not nrn_installed, reason='NEURON is not installed')
def test_synapse_model():
def syn1():
return 'Syn1'
def syn2(p1, p2):
return p1, p2
add_synapse_model(syn1)
add_synapse_model(syn2, 'synapse_2')
assert('syn1' in py_modules.synapse_models)
assert('synapse_2' in py_modules.synapse_models)
assert('syn2' not in py_modules.synapse_models)
syn_fnc = py_modules.synapse_model('syn1')
assert(syn_fnc() == 'Syn1')
syn_fnc = py_modules.synapse_model('synapse_2')
assert(syn_fnc(1, 2) == (1, 2))
py_modules.clear()
[docs]@pytest.mark.skipif(not nrn_installed, reason='NEURON is not installed')
def test_synapse_model_decorator():
@synapse_model
def syn1():
return 'Syn1'
@synapse_model(name='synapse_2')
def syn2(p1, p2):
return p1, p2
assert('syn1' in py_modules.synapse_models)
assert('synapse_2' in py_modules.synapse_models)
assert('syn2' not in py_modules.synapse_models)
syn_fnc = py_modules.synapse_model('syn1')
assert(syn_fnc() == 'Syn1')
syn_fnc = py_modules.synapse_model('synapse_2')
assert(syn_fnc(1, 2) == (1, 2))
py_modules.clear()
[docs]@pytest.mark.skip()
def test_cell_model():
def hoc1():
return "hoc"
def hoc2(p1):
return p1
add_cell_model(hoc1)
add_cell_model(hoc2, name='hoc_function')
assert('hoc1' in py_modules.cell_models)
assert('hoc_function' in py_modules.cell_models)
assert('hoc2' not in py_modules.cell_models)
hoc_fnc = py_modules.cell_model('hoc1')
assert(hoc_fnc() == 'hoc')
hoc_fnc = py_modules.cell_model('hoc_function')
assert(hoc_fnc(1.0) == 1.0)
[docs]@pytest.mark.skip()
def test_cell_model_decorator():
@cell_model
def hoc1():
return "hoc"
@cell_model(name='hoc_function')
def hoc2(p1):
return p1
assert('hoc1' in py_modules.cell_models)
assert('hoc_function' in py_modules.cell_models)
assert('hoc2' not in py_modules.cell_models)
hoc_fnc = py_modules.cell_model('hoc1')
assert(hoc_fnc() == 'hoc')
hoc_fnc = py_modules.cell_model('hoc_function')
assert(hoc_fnc(1.0) == 1.0)
[docs]@pytest.mark.skip()
def test_load_py_modules():
import set_weights
import set_syn_params
import set_cell_params
load_py_modules(cell_models=set_cell_params, syn_models=set_syn_params, syn_weights=set_weights)
assert(all(n in py_modules.cell_models for n in ['Biophys1', 'IntFire1']))
assert(isinstance(py_modules.cell_model('Biophys1'), types.FunctionType))
assert (isinstance(py_modules.cell_model('IntFire1'), types.FunctionType))
assert (all(n in py_modules.synapse_models for n in ['exp2syn']))
assert (isinstance(py_modules.synapse_model('exp2syn'), types.FunctionType))
assert (all(n in py_modules.synaptic_weights for n in ['wmax', 'gaussianLL']))
assert (isinstance(py_modules.synaptic_weight('wmax'), types.FunctionType))
assert (isinstance(py_modules.synaptic_weight('gaussianLL'), types.FunctionType))