Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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
Example #4
0
    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