From ae4fcf651954fff959510f2f4789c588930e006e Mon Sep 17 00:00:00 2001 From: Jessica Mitchell Date: Fri, 11 Jul 2025 10:09:31 +0200 Subject: [PATCH] convert with cursor --- .../sli2py_regressions/test_ticket_716.py | 54 ++++++++++++++++ testsuite/regressiontests/ticket-716.sli | 63 ------------------- 2 files changed, 54 insertions(+), 63 deletions(-) create mode 100644 testsuite/pytests/sli2py_regressions/test_ticket_716.py delete mode 100644 testsuite/regressiontests/ticket-716.sli diff --git a/testsuite/pytests/sli2py_regressions/test_ticket_716.py b/testsuite/pytests/sli2py_regressions/test_ticket_716.py new file mode 100644 index 0000000000..b3b70725e7 --- /dev/null +++ b/testsuite/pytests/sli2py_regressions/test_ticket_716.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# +# test_ticket_716.py +# +# This file is part of NEST. +# +# Copyright (C) 2004 The NEST Initiative +# +# NEST is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# NEST is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with NEST. If not, see . + +import nest +import pytest + + +def test_stdp_dopamine_synapse_weight_constant_without_presynaptic_spikes(): + """ + Regression test for Ticket #716. + + Ensure that the weight of an stdp_dopamine_synapse is constant in the absence of presynaptic spiking. + """ + nest.ResetKernel() + vt = nest.Create("volume_transmitter") + nest.SetDefaults("stdp_dopamine_synapse", {"volume_transmitter": vt[0]}) + + n_pre = nest.Create("parrot_neuron") # does not fire + n_post = nest.Create("parrot_neuron") + n_dopa = nest.Create("parrot_neuron") + + sg_post = nest.Create("spike_generator", params={"spike_times": [0.5, 1.1, 3.4]}) + sg_dopa = nest.Create("spike_generator", params={"spike_times": [1.4, 2.3, 4.6]}) + + nest.Connect(n_pre, n_post, syn_spec="stdp_dopamine_synapse") + nest.Connect(sg_dopa, n_dopa) + nest.Connect(n_dopa, vt) + nest.Connect(sg_post, n_post) + + # Get initial weight + conns = nest.GetConnections(synapse_model="stdp_dopamine_synapse") + w0 = conns.get("weight") + nest.Simulate(10.0) + w1 = conns.get("weight") + + assert abs(w0 - w1) <= 1e-13, f"Weight changed: w0={w0}, w1={w1}" diff --git a/testsuite/regressiontests/ticket-716.sli b/testsuite/regressiontests/ticket-716.sli deleted file mode 100644 index 540161899d..0000000000 --- a/testsuite/regressiontests/ticket-716.sli +++ /dev/null @@ -1,63 +0,0 @@ -/* - * ticket-716.sli - * - * This file is part of NEST. - * - * Copyright (C) 2004 The NEST Initiative - * - * NEST is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * NEST is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with NEST. If not, see . - * - */ - -/** @BeginDocumentation - -Name: testsuite::ticket-716 - stdp dopamine synapse changes weight in the absence of presynaptic spikes - -Synopsis: (ticket-716) run -> NEST exits if test fails - -Description: -Ensure that the weight of an stdp dopamine synapse is constant in the absense of presynaptic spiking. - -Author: Susanne Kunkel, 2013-04-11 - */ - -(unittest) run -/unittest using - -M_ERROR setverbosity - -ResetKernel - -/vt /volume_transmitter Create def -/stdp_dopamine_synapse << /volume_transmitter vt >> SetDefaults - -/n_pre /parrot_neuron Create def % does not fire -/n_post /parrot_neuron Create def -/n_dopa /parrot_neuron Create def - -/sg_post /spike_generator << /spike_times [0.5 1.1 3.4] >> Create def -/sg_dopa /spike_generator << /spike_times [1.4 2.3 4.6] >> Create def - -n_pre n_post << >> /stdp_dopamine_synapse Connect -sg_dopa n_dopa Connect -n_dopa vt Connect -sg_post n_post Connect - -/w0 << /synapse_model /stdp_dopamine_synapse >> GetConnections 0 get GetStatus /weight get def -10.0 Simulate -/w1 << /synapse_model /stdp_dopamine_synapse >> GetConnections 0 get GetStatus /weight get def - -{ w0 w1 sub abs 1e-13 leq } assert_or_die - -endusing