From e386bce7d428605ef735ac50a15c018a7f5347f9 Mon Sep 17 00:00:00 2001
From: Pooja Babu
Date: Mon, 8 Jan 2024 20:06:06 +0100
Subject: [PATCH] Rearrange the nest.Install() calls in tests
---
tests/nest_tests/fir_filter_test.py | 2 +-
tests/nest_tests/nest_delay_based_variables_test.py | 6 +-----
tests/nest_tests/nest_instantiability_test.py | 2 --
tests/nest_tests/nest_integration_test.py | 8 +++-----
tests/nest_tests/nest_loops_integration_test.py | 1 +
tests/nest_tests/nest_multithreading_test.py | 5 ++---
tests/nest_tests/noisy_synapse_test.py | 1 -
tests/nest_tests/stdp_nn_pre_centered_test.py | 1 -
tests/nest_tests/stdp_nn_restr_symm_test.py | 2 --
tests/nest_tests/stdp_nn_synapse_test.py | 1 -
tests/nest_tests/stdp_synapse_test.py | 10 ++++------
tests/nest_tests/stdp_window_test.py | 2 +-
tests/nest_tests/synapse_priority_test.py | 5 +----
tests/nest_tests/test_forward_euler_integrator.py | 8 +++++---
tests/nest_tests/test_gap_junction.py | 3 +--
tests/nest_tests/test_ignore_and_fire.py | 2 +-
tests/nest_tests/test_static_synapse.py | 2 +-
tests/nest_tests/test_time_variable.py | 4 ++--
tests/nest_tests/third_factor_stdp_synapse_test.py | 2 --
19 files changed, 24 insertions(+), 43 deletions(-)
diff --git a/tests/nest_tests/fir_filter_test.py b/tests/nest_tests/fir_filter_test.py
index 59045f18f..220aceaa9 100644
--- a/tests/nest_tests/fir_filter_test.py
+++ b/tests/nest_tests/fir_filter_test.py
@@ -68,9 +68,9 @@ def test_fir_filter(self):
resolution = 0.1
nest.set_verbosity("M_ALL")
- nest.Install(module_name)
nest.ResetKernel()
+ nest.Install(module_name)
# Create a fir_filter node
neuron = nest.Create(nestml_model_name, {"N": 256})
diff --git a/tests/nest_tests/nest_delay_based_variables_test.py b/tests/nest_tests/nest_delay_based_variables_test.py
index 0d6dfce03..51f863e19 100644
--- a/tests/nest_tests/nest_delay_based_variables_test.py
+++ b/tests/nest_tests/nest_delay_based_variables_test.py
@@ -58,11 +58,7 @@ def plot_fig(times, recordable_events_delay: dict, recordable_events: dict, file
def run_simulation(neuron_model_name: str, module_name: str, recordables: List[str], delay: float):
nest.set_verbosity("M_ALL")
nest.ResetKernel()
-
- try:
- nest.Install(module_name)
- except BaseException:
- pass
+ nest.Install(module_name)
neuron = nest.Create(neuron_model_name)
neuron.set({"delay": delay})
diff --git a/tests/nest_tests/nest_instantiability_test.py b/tests/nest_tests/nest_instantiability_test.py
index b6bc17e8a..4c4420f44 100644
--- a/tests/nest_tests/nest_instantiability_test.py
+++ b/tests/nest_tests/nest_instantiability_test.py
@@ -51,8 +51,6 @@ def test_nest_instantiability(self):
nestml_unit_test_models = [
neuron_model_name for neuron_model_name in _neuron_models if neuron_model_name.endswith("_nestml")]
- nest.ResetKernel()
-
for neuron_model in nestml_unit_test_models:
print("Instantiating neuron model: " + str(neuron_model))
nest.Create(neuron_model)
diff --git a/tests/nest_tests/nest_integration_test.py b/tests/nest_tests/nest_integration_test.py
index c22a7e150..d3ea92bc1 100644
--- a/tests/nest_tests/nest_integration_test.py
+++ b/tests/nest_tests/nest_integration_test.py
@@ -91,11 +91,7 @@ def test_nest_integration(self):
nest.ResetKernel()
nest.set_verbosity("M_ALL")
- try:
- nest.Install("nestml_allmodels_module")
- except Exception:
- self.generate_all_models()
- nest.Install("nestml_allmodels_module")
+ nest.Install("nestml_allmodels_module")
s = "Models library\n==============\n\n"
@@ -359,6 +355,7 @@ def _test_model_subthreshold(self, referenceModel, testant, gsl_error_tol, toler
for i, I_stim in enumerate(I_stim_vec):
nest.ResetKernel()
+ nest.Install("nestml_allmodels_module")
neuron1 = nest.Create(referenceModel, params=nest_ref_model_opts)
neuron2 = nest.Create(testant, params=custom_model_opts)
if model_initial_state is not None:
@@ -463,6 +460,7 @@ def _test_model(self, referenceModel, testant, gsl_error_tol, tolerance=0.000001
spike_weights = [1., -1.]
nest.ResetKernel()
+ nest.Install("nestml_allmodels_module")
neuron1 = nest.Create(referenceModel, params=nest_ref_model_opts)
neuron2 = nest.Create(testant, params=custom_model_opts)
diff --git a/tests/nest_tests/nest_loops_integration_test.py b/tests/nest_tests/nest_loops_integration_test.py
index 88cd71e09..5c99a7e51 100644
--- a/tests/nest_tests/nest_loops_integration_test.py
+++ b/tests/nest_tests/nest_loops_integration_test.py
@@ -68,6 +68,7 @@ def test_for_and_while_loop(self):
np.testing.assert_almost_equal(v_m[-1], 16.6)
nest.ResetKernel()
+ nest.Install("nestmlmodule")
nrn = nest.Create("while_loop_nestml")
mm = nest.Create("multimeter")
diff --git a/tests/nest_tests/nest_multithreading_test.py b/tests/nest_tests/nest_multithreading_test.py
index 9c52cbed2..109ffe02d 100644
--- a/tests/nest_tests/nest_multithreading_test.py
+++ b/tests/nest_tests/nest_multithreading_test.py
@@ -72,13 +72,11 @@ def nestml_generate_target(self) -> None:
codegen_opts={"neuron_parent_class": "ArchivingNode",
"neuron_parent_class_include": "archiving_node.h"})
- nest.Install(self.neuron_module)
- nest.Install(self.neuron_synapse_module)
-
@pytest.mark.skipif(NESTTools.detect_nest_version().startswith("v2"),
reason="This test does not support NEST 2")
def test_neuron_multithreading(self, number_of_threads: int) -> None:
nest.ResetKernel()
+ nest.Install(self.neuron_module)
nest.resolution = 0.1
nest.local_num_threads = number_of_threads
spike_times = np.array([2., 4., 7., 8., 12., 13., 19., 23., 24., 28., 29., 30., 33., 34.,
@@ -114,6 +112,7 @@ def test_neuron_synapse_multithreading(self, number_of_threads: int) -> None:
48., 49., 50., 54., 56., 57., 59., 60., 61., 62., 67., 74.])
nest.ResetKernel()
+ nest.Install(self.neuron_synapse_module)
nest.resolution = 0.1
nest.local_num_threads = number_of_threads
diff --git a/tests/nest_tests/noisy_synapse_test.py b/tests/nest_tests/noisy_synapse_test.py
index 3a711c539..f157b5553 100644
--- a/tests/nest_tests/noisy_synapse_test.py
+++ b/tests/nest_tests/noisy_synapse_test.py
@@ -93,7 +93,6 @@ def run_synapse_test(self, neuron_model_name,
post_weights = {'parrot': []}
- nest.ResetKernel()
nest.SetKernelStatus({'resolution': resolution})
wr = nest.Create('weight_recorder')
diff --git a/tests/nest_tests/stdp_nn_pre_centered_test.py b/tests/nest_tests/stdp_nn_pre_centered_test.py
index 79b413a13..131734498 100644
--- a/tests/nest_tests/stdp_nn_pre_centered_test.py
+++ b/tests/nest_tests/stdp_nn_pre_centered_test.py
@@ -151,7 +151,6 @@ def run_synapse_test(self, neuron_model_name,
post_weights = {'parrot': []}
- nest.ResetKernel()
nest.SetKernelStatus({'resolution': resolution})
wr = nest.Create('weight_recorder')
diff --git a/tests/nest_tests/stdp_nn_restr_symm_test.py b/tests/nest_tests/stdp_nn_restr_symm_test.py
index 5f9df6fff..be562e355 100644
--- a/tests/nest_tests/stdp_nn_restr_symm_test.py
+++ b/tests/nest_tests/stdp_nn_restr_symm_test.py
@@ -149,8 +149,6 @@ def run_synapse_test(self, neuron_model_name,
nest.set_verbosity("M_WARNING")
post_weights = {'parrot': []}
-
- nest.ResetKernel()
nest.SetKernelStatus({'resolution': resolution})
wr = nest.Create('weight_recorder')
diff --git a/tests/nest_tests/stdp_nn_synapse_test.py b/tests/nest_tests/stdp_nn_synapse_test.py
index 6cf732c12..e8ca0096c 100644
--- a/tests/nest_tests/stdp_nn_synapse_test.py
+++ b/tests/nest_tests/stdp_nn_synapse_test.py
@@ -150,7 +150,6 @@ def run_synapse_test(self, neuron_model_name,
post_weights = {'parrot': []}
- nest.ResetKernel()
nest.SetKernelStatus({'resolution': resolution})
wr = nest.Create('weight_recorder')
diff --git a/tests/nest_tests/stdp_synapse_test.py b/tests/nest_tests/stdp_synapse_test.py
index 1a74c4751..9f43c4bb6 100644
--- a/tests/nest_tests/stdp_synapse_test.py
+++ b/tests/nest_tests/stdp_synapse_test.py
@@ -91,10 +91,6 @@ def generate_model_code(self):
suffix="_nestml_non_jit",
codegen_opts=non_jit_codegen_opts)
- # load the generated modules into NEST
- nest.Install("nestml_jit_module")
- nest.Install("nestml_non_jit_module")
-
@pytest.mark.parametrize("delay", [1., 1.5])
@pytest.mark.parametrize("resolution", [.1, .5, 1.])
@pytest.mark.parametrize("pre_spike_times,post_spike_times", [
@@ -150,6 +146,10 @@ def run_synapse_test(self, neuron_model_name,
nest.set_verbosity("M_ALL")
nest.ResetKernel()
+ # load the generated modules into NEST
+ nest.Install("nestml_jit_module")
+ nest.Install("nestml_non_jit_module")
+
print("Pre spike times: " + str(pre_spike_times))
print("Post spike times: " + str(post_spike_times))
@@ -157,8 +157,6 @@ def run_synapse_test(self, neuron_model_name,
nest.set_verbosity("M_ERROR")
post_weights = {"parrot": []}
-
- nest.ResetKernel()
nest.SetKernelStatus({"resolution": resolution})
wr = nest.Create("weight_recorder")
diff --git a/tests/nest_tests/stdp_window_test.py b/tests/nest_tests/stdp_window_test.py
index e861f91e8..3d49bf777 100644
--- a/tests/nest_tests/stdp_window_test.py
+++ b/tests/nest_tests/stdp_window_test.py
@@ -58,7 +58,6 @@ def nestml_generate_target():
{"neuron": "izhikevich",
"synapse": "stdp",
"post_ports": ["post_spikes"]}]})
- nest.Install("nestmlmodule")
def run_stdp_network(pre_spike_time, post_spike_time,
@@ -75,6 +74,7 @@ def run_stdp_network(pre_spike_time, post_spike_time,
nest.set_verbosity("M_ALL")
nest.ResetKernel()
+ nest.Install("nestmlmodule")
nest.SetKernelStatus({"resolution": resolution})
wr = nest.Create("weight_recorder")
diff --git a/tests/nest_tests/synapse_priority_test.py b/tests/nest_tests/synapse_priority_test.py
index 1a1ba969b..8e09a2666 100644
--- a/tests/nest_tests/synapse_priority_test.py
+++ b/tests/nest_tests/synapse_priority_test.py
@@ -109,10 +109,7 @@ def run_nest_simulation(self, neuron_model_name,
nest.set_verbosity("M_ALL")
# nest.set_verbosity("M_WARNING")
nest.ResetKernel()
- try:
- nest.Install("nestml_module")
- except Exception:
- pass
+ nest.Install("nestml_module")
nest.SetKernelStatus({'resolution': resolution})
print("Pre spike times: " + str(pre_spike_times))
diff --git a/tests/nest_tests/test_forward_euler_integrator.py b/tests/nest_tests/test_forward_euler_integrator.py
index ec0c30f01..43ae24761 100644
--- a/tests/nest_tests/test_forward_euler_integrator.py
+++ b/tests/nest_tests/test_forward_euler_integrator.py
@@ -46,15 +46,17 @@ def generate_target(self, numeric_solver: str):
module_name="nestml" + numeric_solver.replace("-", "_") + "module",
codegen_opts={"numeric_solver": numeric_solver})
- nest.Install("nestml" + numeric_solver.replace("-", "_") + "module")
+ return "nestml" + numeric_solver.replace("-", "_") + "module"
@pytest.mark.skipif(NESTTools.detect_nest_version().startswith("v2"),
reason="This test does not support NEST 2")
def test_forward_euler_integrator(self):
- self.generate_target("forward-Euler")
- self.generate_target("rk45")
+ forward_euler_module_name = self.generate_target("forward-Euler")
+ rk45_module_name = self.generate_target("rk45")
nest.ResetKernel()
+ nest.Install(forward_euler_module_name)
+ nest.Install(rk45_module_name)
nest.resolution = .001
nrn1 = nest.Create("izhikevich_rk45_nestml")
diff --git a/tests/nest_tests/test_gap_junction.py b/tests/nest_tests/test_gap_junction.py
index 73b0dd3ed..2ccb9d652 100644
--- a/tests/nest_tests/test_gap_junction.py
+++ b/tests/nest_tests/test_gap_junction.py
@@ -63,8 +63,6 @@ def generate_code(self, neuron_model: str):
suffix="_nestml",
codegen_opts=codegen_opts)
- nest.Install("nestml_gap_" + neuron_model + "_module")
-
return neuron_model
def _test_gap_junction_effect_on_membrane_potential(self, neuron_model, wfr_interpolation_order: int):
@@ -74,6 +72,7 @@ def _test_gap_junction_effect_on_membrane_potential(self, neuron_model, wfr_inte
nest.set_verbosity("M_ALL")
nest.ResetKernel()
+ nest.Install("nestml_gap_" + neuron_model + "_module")
nest.resolution = resolution
nest.wfr_comm_interval = 2. # [ms]
diff --git a/tests/nest_tests/test_ignore_and_fire.py b/tests/nest_tests/test_ignore_and_fire.py
index 44410c2f9..227dbb7a0 100644
--- a/tests/nest_tests/test_ignore_and_fire.py
+++ b/tests/nest_tests/test_ignore_and_fire.py
@@ -59,7 +59,6 @@ def setUp(self):
logging_level="DEBUG",
suffix="_nestml",
codegen_opts=codegen_opts)
- nest.Install("nestmlmodule")
@pytest.mark.skipif(NESTTools.detect_nest_version().startswith("v2"),
reason="This test does not support NEST 2")
@@ -69,6 +68,7 @@ def test_ignore_and_fire_with_stdp(self, resolution: float):
nest.set_verbosity("M_ALL")
nest.ResetKernel()
+ nest.Install("nestmlmodule")
nest.SetKernelStatus({"resolution": resolution})
pre_neuron = nest.Create(self.neuron_model_name)
diff --git a/tests/nest_tests/test_static_synapse.py b/tests/nest_tests/test_static_synapse.py
index bc678fca8..53472a717 100644
--- a/tests/nest_tests/test_static_synapse.py
+++ b/tests/nest_tests/test_static_synapse.py
@@ -48,7 +48,6 @@ def setUp(self):
logging_level="DEBUG",
module_name="nestmlmodule",
suffix="_nestml")
- nest.Install("nestmlmodule")
@pytest.mark.parametrize("synapse_model_name", ["static_synapse_nestml", "noisy_synapse_nestml"])
def test_static_synapse(self, synapse_model_name: str):
@@ -59,6 +58,7 @@ def test_static_synapse(self, synapse_model_name: str):
nest.ResetKernel()
nest.set_verbosity("M_ALL")
nest.SetKernelStatus({"resolution": .1})
+ nest.Install("nestmlmodule")
# create spike_generators with these times
pre_sg = nest.Create("spike_generator",
diff --git a/tests/nest_tests/test_time_variable.py b/tests/nest_tests/test_time_variable.py
index 28de4da7e..c924e7261 100644
--- a/tests/nest_tests/test_time_variable.py
+++ b/tests/nest_tests/test_time_variable.py
@@ -39,7 +39,6 @@ def setUp(self):
os.path.join(os.path.realpath(os.path.join(os.path.dirname(__file__), "resources", "TimeVariableSynapse.nestml")))]
target_path = "target"
logging_level = "INFO"
- module_name = "nestmlmodule"
suffix = "_nestml"
nest.set_verbosity("M_ALL")
@@ -48,10 +47,10 @@ def setUp(self):
logging_level=logging_level,
module_name=module_name,
suffix=suffix)
- nest.Install(module_name)
def test_time_variable_neuron(self):
nest.ResetKernel()
+ nest.Install("nestmlmodule")
nrn = nest.Create("time_variable_neuron_nestml")
mm = nest.Create("multimeter")
nest.SetStatus(mm, {"record_from": ["x", "y"]})
@@ -69,6 +68,7 @@ def test_time_variable_neuron(self):
def test_time_variable_synapse(self):
"""a synapse is only updated when presynaptic spikes arrive"""
nest.ResetKernel()
+ nest.Install("nestmlmodule")
nrn = nest.Create("iaf_psc_delta", 2)
nrn[0].I_e = 1000. # [pA]
sr = nest.Create("spike_recorder")
diff --git a/tests/nest_tests/third_factor_stdp_synapse_test.py b/tests/nest_tests/third_factor_stdp_synapse_test.py
index 3938872b5..fd4987c21 100644
--- a/tests/nest_tests/third_factor_stdp_synapse_test.py
+++ b/tests/nest_tests/third_factor_stdp_synapse_test.py
@@ -111,8 +111,6 @@ def run_synapse_test(self, neuron_model_name,
print("Post spike times: " + str(post_spike_times))
nest.set_verbosity("M_WARNING")
-
- nest.ResetKernel()
nest.SetKernelStatus({"resolution": resolution})
wr = nest.Create("weight_recorder")