def test_simple(self): nodes = nest.Create('iaf_psc_alpha', 5) nest.Connect(nodes, nodes, 'one_to_one') nest.DisconnectOneToOne(nodes[0], nodes[0], 'static_synapse') self.assertEqual(nest.GetKernelStatus('num_connections'), 4)
def test_synapse_deletion_one_to_one_no_sp(self): for syn_model in nest.Models('synapses'): if syn_model not in self.exclude_synapse_model: nest.ResetKernel() print(syn_model) nest.SetKernelStatus({ 'resolution': 0.1, 'total_num_virtual_procs': self.num_procs }) neurons = nest.Create('iaf_psc_alpha', 4) syn_dict = {'model': syn_model} nest.Connect([neurons[0]], [neurons[2]], "one_to_one", syn_dict) nest.Connect([neurons[1]], [neurons[3]], "one_to_one", syn_dict) # Delete existent connection conns = nest.GetConnections([neurons[0]], [neurons[2]], syn_model) if mpi_test: conns = self.comm.allgather(conns) conns = filter(None, conns) assert len(list(conns)) == 1 nest.DisconnectOneToOne(neurons[0], neurons[2], syn_dict) conns = nest.GetConnections([neurons[0]], [neurons[2]], syn_model) if mpi_test: conns = self.comm.allgather(conns) conns = filter(None, conns) assert len(list(conns)) == 0 # Assert that one can not delete a non existent connection conns1 = nest.GetConnections([neurons[0]], [neurons[1]], syn_model) if mpi_test: conns1 = self.comm.allgather(conns1) conns1 = filter(None, conns1) assert len(list(conns1)) == 0 try: nest.DisconnectOneToOne(neurons[0], neurons[1], syn_dict) assert False except nest.kernel.NESTError: print("Synapse deletion ok: " + syn_model)
def test_single_synapse_deletion_sp(self): for syn_model in nest.Models('synapses'): if syn_model not in self.exclude_synapse_model: nest.ResetKernel() nest.CopyModel('static_synapse', 'my_static_synapse') syn_dict = { 'model': syn_model, 'pre_synaptic_element': 'SE1', 'post_synaptic_element': 'SE2' } # nest.SetKernelStatus( # {'structural_plasticity_synapses': {'syn1': syn_dict}} # ) neurons = nest.Create( 'iaf_psc_alpha', 2, { 'synaptic_elements': { 'SE1': { 'z': 0.0, 'growth_rate': 0.0 }, 'SE2': { 'z': 0.0, 'growth_rate': 0.0 } } }) nest.Connect(neurons, neurons, "all_to_all", syn_dict) nest.Connect(neurons, neurons, "all_to_all", {'model': 'my_static_synapse'}) # Test if the connected synaptic elements before the simulation # are correct status = nest.GetStatus(neurons, 'synaptic_elements') for st_neuron in status: self.assertEqual(2, st_neuron['SE1']['z_connected']) self.assertEqual(2, st_neuron['SE2']['z_connected']) srcId = 0 targId = 1 conns = nest.GetConnections([neurons[srcId]], [neurons[targId]], syn_model) assert conns nest.DisconnectOneToOne(neurons[srcId], neurons[targId], syn_dict) status = nest.GetStatus(neurons, 'synaptic_elements') self.assertEqual(1, status[srcId]['SE1']['z_connected']) self.assertEqual(2, status[srcId]['SE2']['z_connected']) self.assertEqual(2, status[targId]['SE1']['z_connected']) self.assertEqual(1, status[targId]['SE2']['z_connected']) conns = nest.GetConnections([neurons[srcId]], [neurons[targId]], syn_model) assert not conns
def test_synapse_deletion_one_to_one_no_sp(self): for syn_model in nest.Models('synapses'): if syn_model not in self.exclude_synapse_model: nest.ResetKernel() nest.CopyModel('static_synapse', 'my_static_synapse') neurons = nest.Create('iaf_neuron', 2) syn_dict = {'model': syn_model} nest.Connect(neurons, neurons, "all_to_all", syn_dict) srcId = 0 targId = 1 conns = nest.GetConnections([neurons[srcId]],[neurons[targId]],syn_model) assert len(conns) == 1 nest.DisconnectOneToOne(neurons[srcId], neurons[targId], syn_dict) conns = nest.GetConnections([neurons[srcId]],[neurons[targId]],syn_model) assert len(conns) == 0