def testConnectivity(self):
     self.setUpNetwork(self.conn_dict)
     # make sure all connections do exist
     M = connect_test_base.get_connectivity_matrix(self.pop1, self.pop2)
     connect_test_base.mpi_assert(M, np.identity(self.N), self)
     # make sure no connections were drawn from the target to the source
     # population
     M = connect_test_base.get_connectivity_matrix(self.pop2, self.pop1)
     connect_test_base.mpi_assert(M, np.zeros((self.N, self.N)), self)
 def testTotalNumberOfConnections(self):
     conn_params = self.conn_dict.copy()
     self.setUpNetwork(conn_params)
     total_conn = len(nest.GetConnections(self.pop1, self.pop2))
     connect_test_base.mpi_assert(total_conn, self.Nconn, self)
     # make sure no connections were drawn from the target to the source
     # population
     M = connect_test_base.get_connectivity_matrix(self.pop2, self.pop1)
     M_none = np.zeros((len(self.pop1), len(self.pop2)))
     connect_test_base.mpi_assert(M, M_none, self)
 def testInputArrayToStdpSynapse(self):
     params = ['Wmax', 'alpha', 'lambda', 'mu_minus', 'mu_plus', 'tau_plus']
     syn_params = {'synapse_model': 'stdp_synapse'}
     values = [np.arange(self.N1, dtype=float) for i in range(6)]
     for i, param in enumerate(params):
         syn_params[param] = values[i]
     self.setUpNetwork(self.conn_dict, syn_params)
     for i, param in enumerate(params):
         a = connect_test_base.get_weighted_connectivity_matrix(
             self.pop1, self.pop2, param)
         connect_test_base.mpi_assert(np.diag(a), values[i], self)
Пример #4
0
    def testAutapsesFalse(self):
        conn_params = self.conn_dict.copy()
        N = 10

        # test that autapses were excluded
        conn_params['p'] = 1. - 1. / N
        conn_params['allow_autapses'] = False
        pop = nest.Create('iaf_psc_alpha', N)
        nest.Connect(pop, pop, conn_params)
        M = connect_test_base.get_connectivity_matrix(pop, pop)
        connect_test_base.mpi_assert(np.diag(M), np.zeros(N), self)
 def testConnectivity(self):
     self.setUpNetwork(self.conn_dict)
     # make sure all connections do exist
     M = connect_test_base.get_connectivity_matrix(self.pop1, self.pop2)
     M_all = np.ones((len(self.pop2), len(self.pop1)))
     connect_test_base.mpi_assert(M, M_all, self)
     # make sure no connections were drawn from the target to the source
     # population
     M = connect_test_base.get_connectivity_matrix(self.pop2, self.pop1)
     M_none = np.zeros((len(self.pop1), len(self.pop2)))
     connect_test_base.mpi_assert(M, M_none, self)
 def testInputArrayRPort(self):
     syn_params = {}
     neuron_model = 'iaf_psc_exp_multisynapse'
     neuron_dict = {'tau_syn': [0.1 + i for i in range(self.N1)]}
     self.pop1 = nest.Create(neuron_model, self.N1, neuron_dict)
     self.pop2 = nest.Create(neuron_model, self.N1, neuron_dict)
     self.param_array = np.arange(1, self.N1 + 1, dtype=int)
     syn_params['receptor_type'] = self.param_array
     nest.Connect(self.pop1, self.pop2, self.conn_dict, syn_params)
     M = connect_test_base.get_weighted_connectivity_matrix(
         self.pop1, self.pop2, 'receptor')
     connect_test_base.mpi_assert(M, np.diag(self.param_array), self)
    def testAutapsesFalse(self):
        conn_params = self.conn_dict.copy()
        N = 3

        # test that autapses were excluded
        conn_params['N'] = N * (N - 1)
        conn_params['allow_autapses'] = False
        pop = nest.Create('iaf_psc_alpha', N)
        nest.Connect(pop, pop, conn_params)
        # make sure all connections do exist
        M = connect_test_base.get_connectivity_matrix(pop, pop)
        connect_test_base.mpi_assert(np.diag(M), np.zeros(N), self)
    def testAutapsesTrue(self):
        conn_params = self.conn_dict.copy()
        N = 10
        conn_params['allow_multapses'] = False

        # test that autapses exist
        conn_params['p'] = 1.
        conn_params['allow_autapses'] = True
        pop = nest.Create('iaf_psc_alpha', N)
        nest.Connect(pop, pop, conn_params)
        # make sure all connections do exist
        M = connect_test_base.get_connectivity_matrix(pop, pop)
        connect_test_base.mpi_assert(np.diag(M), np.ones(N), self)
 def testSymmetricFlag(self):
     conn_dict_symmetric = self.conn_dict.copy()
     conn_dict_symmetric['make_symmetric'] = True
     self.setUpNetwork(conn_dict_symmetric)
     M1 = connect_test_base.get_connectivity_matrix(self.pop1, self.pop2)
     M2 = connect_test_base.get_connectivity_matrix(self.pop2, self.pop1)
     # test that connections were created in both directions
     connect_test_base.mpi_assert(
         M1, np.transpose(connect_test_base.gather_data(M2)), self)
     # test that no other connections were created
     connect_test_base.mpi_assert(M1,
                                  np.zeros_like(M1) + np.identity(self.N),
                                  self)
    def testMultapsesTrue(self):
        conn_params = self.conn_dict.copy()
        N = 3
        conn_params['allow_autapses'] = True

        # test that multapses were drawn
        conn_params['indegree'] = N + 1
        conn_params['allow_multapses'] = True
        pop = nest.Create('iaf_psc_alpha', N)
        nest.Connect(pop, pop, conn_params)
        nr_conns = len(nest.GetConnections(pop, pop))
        connect_test_base.mpi_assert(nr_conns, conn_params['indegree'] * N,
                                     self)
 def testInDegree(self):
     conn_params = self.conn_dict.copy()
     conn_params['allow_autapses'] = False
     conn_params['allow_multapses'] = False
     self.setUpNetwork(conn_params)
     # make sure the indegree is right
     M = connect_test_base.get_connectivity_matrix(self.pop1, self.pop2)
     inds = np.sum(M, axis=1)
     connect_test_base.mpi_assert(inds, self.Nin * np.ones(self.N2), self)
     # make sure no connections were drawn from the target to the source
     # population
     M = connect_test_base.get_connectivity_matrix(self.pop2, self.pop1)
     M_none = np.zeros((len(self.pop1), len(self.pop2)))
     connect_test_base.mpi_assert(M, M_none, self)
 def testInputArray(self):
     syn_params = {}
     for label in ['weight', 'delay']:
         if label == 'weight':
             self.param_array = np.arange(self.N_array, dtype=float)
         elif label == 'delay':
             self.param_array = np.arange(1, self.N_array + 1) * 0.1
         syn_params[label] = self.param_array
         nest.ResetKernel()
         self.setUpNetwork(self.conn_dict,
                           syn_params,
                           N1=self.N_array,
                           N2=self.N_array)
         M_nest = connect_test_base.get_weighted_connectivity_matrix(
             self.pop1, self.pop2, label)
         connect_test_base.mpi_assert(M_nest, np.diag(self.param_array),
                                      self)
 def testInputArrayWithoutAutapses(self):
     self.conn_dict['allow_autapses'] = False
     for label in ['weight', 'delay']:
         syn_params = {}
         if label == 'weight':
             self.param_array = np.arange(self.N1 * self.N1,
                                          dtype=float).reshape(
                                              self.N1, self.N1)
         elif label == 'delay':
             self.param_array = np.arange(1, self.N1 * self.N1 + 1).reshape(
                 self.N1, self.N1) * 0.1
         syn_params[label] = self.param_array
         self.setUpNetworkOnePop(self.conn_dict, syn_params)
         M_nest = connect_test_base.get_weighted_connectivity_matrix(
             self.pop, self.pop, label)
         np.fill_diagonal(self.param_array, 0)
         connect_test_base.mpi_assert(M_nest, self.param_array, self)