def testConnectivity(self): self.setUpNetwork(self.conn_dict) # make sure all connections do exist M = hf.get_connectivity_matrix(self.pop1, self.pop2) hf.mpi_assert(M, np.identity(self.N), self) # make sure no connections were drawn from the target to the source # population M = hf.get_connectivity_matrix(self.pop2, self.pop1) hf.mpi_assert(M, np.zeros((self.N, self.N)), self)
def testSymmetricFlag(self): conn_dict_symmetric = self.conn_dict.copy() conn_dict_symmetric['make_symmetric'] = True self.setUpNetwork(conn_dict_symmetric) M1 = hf.get_connectivity_matrix(self.pop1, self.pop2) M2 = hf.get_connectivity_matrix(self.pop2, self.pop1) # test that connections were created in both directions hf.mpi_assert(M1, np.transpose(hf.gather_data(M2)), self) # test that no other connections were created hf.mpi_assert(M1, np.zeros_like(M1) + np.identity(self.N), self)
def testAutapsesFalse(self): conn_params = self.conn_dict.copy() # test that autapses were excluded conn_params['allow_autapses'] = False self.pop1 = hf.nest.Create('iaf_psc_alpha', self.N1) hf.nest.Connect(self.pop1, self.pop1, conn_params) # make sure all connections do exist M = hf.get_connectivity_matrix(self.pop1, self.pop1) hf.mpi_assert(np.diag(M), np.zeros(self.N1), self)
def testTotalNumberOfConnections(self): conn_params = self.conn_dict.copy() self.setUpNetwork(conn_params) total_conn = len(hf.nest.GetConnections(self.pop1, self.pop2)) hf.mpi_assert(total_conn, self.Nconn, self) # make sure no connections were drawn from the target to the source # population M = hf.get_connectivity_matrix(self.pop2, self.pop1) M_none = np.zeros((len(self.pop1), len(self.pop2))) hf.mpi_assert(M, M_none, self)
def testConnectivity(self): self.setUpNetwork(self.conn_dict) # make sure all connections do exist M = hf.get_connectivity_matrix(self.pop1, self.pop2) M_all = np.ones((len(self.pop2), len(self.pop1))) hf.mpi_assert(M, M_all, self) # make sure no connections were drawn from the target to the source # population M = hf.get_connectivity_matrix(self.pop2, self.pop1) M_none = np.zeros((len(self.pop1), len(self.pop2))) hf.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 = hf.get_weighted_connectivity_matrix(self.pop1, self.pop2, param) hf.mpi_assert(np.diag(a), values[i], self)
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 = hf.nest.Create('iaf_psc_alpha', N) hf.nest.Connect(pop, pop, conn_params) M = hf.get_connectivity_matrix(pop, pop) hf.mpi_assert(np.diag(M), np.zeros(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['outdegree'] = N + 1 conn_params['allow_multapses'] = True pop = hf.nest.Create('iaf_psc_alpha', N) hf.nest.Connect(pop, pop, conn_params) nr_conns = len(hf.nest.GetConnections(pop, pop)) hf.mpi_assert(nr_conns, conn_params['outdegree'] * N, 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 = hf.nest.Create(neuron_model, self.N1, neuron_dict) self.pop2 = hf.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 hf.nest.Connect(self.pop1, self.pop2, self.conn_dict, syn_params) M = hf.get_weighted_connectivity_matrix(self.pop1, self.pop2, 'receptor') hf.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 = hf.nest.Create('iaf_psc_alpha', N) hf.nest.Connect(pop, pop, conn_params) # make sure all connections do exist M = hf.get_connectivity_matrix(pop, pop) hf.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['outdegree'] = N conn_params['allow_autapses'] = True pop = hf.nest.Create('iaf_psc_alpha', N) hf.nest.Connect(pop, pop, conn_params) # make sure all connections do exist M = hf.get_connectivity_matrix(pop, pop) hf.mpi_assert(np.diag(M), np.ones(N), self)
def testOutDegree(self): conn_params = self.conn_dict.copy() conn_params['allow_autapses'] = False conn_params['allow_multapses'] = False self.setUpNetwork(conn_params) # make sure the outdegree is right M = hf.get_connectivity_matrix(self.pop1, self.pop2) outds = np.sum(M, axis=0) hf.mpi_assert(outds, self.Nout * np.ones(self.N1), self) # make sure no connections were drawn from the target to the source # population M = hf.get_connectivity_matrix(self.pop2, self.pop1) M_none = np.zeros((len(self.pop1), len(self.pop2))) hf.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 hf.nest.ResetKernel() self.setUpNetwork(self.conn_dict, syn_params, N1=self.N_array, N2=self.N_array) M_nest = hf.get_weighted_connectivity_matrix( self.pop1, self.pop2, label) hf.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 = hf.get_weighted_connectivity_matrix( self.pop, self.pop, label) np.fill_diagonal(self.param_array, 0) hf.mpi_assert(M_nest, self.param_array, self)