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")