Пример #1
0
 def test_add_inplace_assembly(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(11, sim.IF_cond_exp())
     p3 = sim.Population(11, sim.IF_cond_exp())
     a1 = sim.Assembly(p1, p2)
     a2 = sim.Assembly(p2, p3)
     a1 += a2
     self.assertEqual(a1.populations, [p1, p2, p3])
Пример #2
0
 def test_conductance_based(self):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(6, sim.IF_cond_alpha())
     p3 = sim.Population(3, sim.IF_curr_exp())
     a1 = sim.Assembly(p1, p2)
     a2 = sim.Assembly(p1, p3)
     self.assertTrue(a1.conductance_based)
     self.assertFalse(a2.conductance_based)
Пример #3
0
 def test__homogeneous_synapses(self):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(6, sim.IF_cond_alpha())
     p3 = sim.Population(3, sim.IF_curr_exp())
     a1 = sim.Assembly(p1, p2)
     a2 = sim.Assembly(p1, p3)
     self.assertTrue(a1._homogeneous_synapses)
     self.assertFalse(a2._homogeneous_synapses)
Пример #4
0
 def test__add__assembly(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(11, sim.IF_cond_exp())
     p3 = sim.Population(11, sim.IF_cond_exp())
     a1 = sim.Assembly(p1, p2)
     a2 = sim.Assembly(p2, p3)
     a3 = a1 + a2
     self.assertEqual(a3.populations, [p1, p2, p3])  # or do we want [p1, p2, p3]?
Пример #5
0
 def test_first_and_last_id(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(6, sim.IF_cond_alpha())
     p3 = sim.Population(3, sim.IF_curr_exp())
     a = sim.Assembly(p3, p1, p2)
     self.assertEqual(a.first_id, p1[0])
     self.assertEqual(a.last_id, p3[-1])
Пример #6
0
 def test_initialize(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(11, sim.IF_cond_exp())
     a = sim.Assembly(p1, p2)
     v_init = -54.3
     a.initialize(v=v_init)
     assert_array_equal(p2.initial_values['v'].evaluate(simplify=True), v_init)
Пример #7
0
 def test_positions_property(self):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(11, sim.IF_cond_exp())
     a = sim.Assembly(p1, p2, label="test")
     assert_array_equal(
         a.positions, numpy.concatenate((p1.positions, p2.positions),
                                        axis=1))
Пример #8
0
 def test__add__population(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(11, sim.IF_cond_exp())
     a1 = sim.Assembly(p1)
     self.assertEqual(a1.populations, [p1])
     a2 = a1 + p2
     self.assertEqual(a1.populations, [p1])
     self.assertEqual(a2.populations, [p1, p2])
Пример #9
0
 def test_getitem_int(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(6, sim.IF_cond_alpha())
     p3 = sim.Population(3, sim.IF_curr_exp())
     a = sim.Assembly(p3, p1, p2)
     self.assertEqual(a[0], p3[0])
     self.assertEqual(a[3], p1[0])
     self.assertEqual(a[14], p2[0])
Пример #10
0
 def test_all_iterator(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(6, sim.IF_cond_alpha())
     p3 = sim.Population(3, sim.IF_curr_exp())
     a = sim.Assembly(p1, p2, p3)
     assert hasattr(a.all(), "next") or hasattr(a.all(), "__next__")  # 2nd form is for Py3
     ids = list(a.all())
     self.assertEqual(ids, p1.all_cells.tolist() + p2.all_cells.tolist() + p3.all_cells.tolist())
Пример #11
0
 def test_get_population(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p1.label = "pop1"
     p2 = sim.Population(11, sim.IF_cond_exp())
     p2.label = "pop2"
     a = sim.Assembly(p1, p2)
     self.assertEqual(a.get_population("pop1"), p1)
     self.assertEqual(a.get_population("pop2"), p2)
     self.assertRaises(KeyError, a.get_population, "foo")
Пример #12
0
 def test_get_v(self):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(11, sim.IF_cond_exp())
     a = sim.Assembly(p1, p2, label="test")
     a.record_v()
     sim.run(10.0)
     a.get_data = Mock()
     a.get_v()
     a.get_data.assert_called_with('v', True)
Пример #13
0
 def test_id_to_index(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(6, sim.IF_cond_alpha())
     p3 = sim.Population(3, sim.IF_curr_exp())
     a = sim.Assembly(p3, p1, p2)
     self.assertEqual(a.id_to_index(p3[0]), 0)
     self.assertEqual(a.id_to_index(p1[0]), 3)
     self.assertEqual(a.id_to_index(p2[0]), 14)
     assert_array_equal(a.id_to_index([p1[0], p2[0], p3[0]]), [3, 14, 0])
Пример #14
0
 def test_getSpikes(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(11, sim.IF_cond_exp())
     a = sim.Assembly(p1, p2, label="test")
     a.record('spikes')
     sim.run(10.0)
     a.get_data = Mock()
     a.getSpikes()
     a.get_data.assert_called_with('spikes', True)
Пример #15
0
 def test_get_gsyn(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(11, sim.IF_cond_exp())
     a = sim.Assembly(p1, p2, label="test")
     a.record_gsyn()
     sim.run(10.0)
     a.get_data = Mock()
     a.get_gsyn()
     a.get_data.assert_called_with(['gsyn_exc', 'gsyn_inh'], True)
Пример #16
0
 def test_print_v(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(11, sim.IF_cond_exp())
     a = sim.Assembly(p1, p2, label="test")
     a.record_v()
     sim.run(10.0)
     a.write_data = Mock()
     a.print_v("foo.txt")
     a.write_data.assert_called_with('foo.txt', 'v', True)
Пример #17
0
 def test_sample(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(6, sim.IF_cond_alpha())
     p3 = sim.Population(3, sim.IF_curr_exp())
     a = sim.Assembly(p3, p1, p2)
     a1 = a.sample(10, rng=MockRNG())
     # MockRNG.permutation reverses the order
     self.assertEqual(len(a1.populations), 2)
     assert_array_equal(a1.populations[0].all_cells, p1[11:6:-1])
     assert_array_equal(a1.populations[1].all_cells, p2[6::-1])
Пример #18
0
 def test_print_gsyn(self):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(11, sim.IF_cond_exp())
     a = sim.Assembly(p1, p2, label="test")
     a.record_gsyn()
     sim.run(10.0)
     a.write_data = Mock()
     a.print_gsyn("foo.txt")
     a.write_data.assert_called_with('foo.txt', ['gsyn_exc', 'gsyn_inh'],
                                     True)
Пример #19
0
 def test_local_cells(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(11, sim.IF_cond_exp())
     p3 = sim.Population(11, sim.IF_cond_exp())
     a = sim.Assembly(p1, p2, p3)
     self.assertEqual(a.local_cells.size,
                  p1.local_cells.size + p2.local_cells.size + p3.local_cells.size)
     self.assertEqual(a.local_cells[0], p1.local_cells[0])
     self.assertEqual(a.local_cells[-1], p3.local_cells[-1])
     assert_array_equal(a.local_cells, numpy.append(p1.local_cells, (p2.local_cells, p3.local_cells)))
Пример #20
0
 def test_printSpikes(self, sim=sim):
     # TODO: implement assert_deprecated
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(11, sim.IF_cond_exp())
     a = sim.Assembly(p1, p2, label="test")
     a.record('spikes')
     sim.run(10.0)
     a.write_data = Mock()
     a.printSpikes("foo.txt")
     a.write_data.assert_called_with('foo.txt', 'spikes', True)
Пример #21
0
 def test_mask_local(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(11, sim.IF_cond_exp())
     p3 = sim.Population(11, sim.IF_cond_exp())
     a = sim.Assembly(p1, p2, p3)
     self.assertEqual(a._mask_local.size,
                  p1._mask_local.size + p2._mask_local.size + p3._mask_local.size)
     self.assertEqual(a._mask_local[0], p1._mask_local[0])
     self.assertEqual(a._mask_local[-1], p3._mask_local[-1])
     assert_array_equal(a._mask_local, numpy.append(p1._mask_local, (p2._mask_local, p3._mask_local)))
     assert_array_equal(a.local_cells, a.all_cells[a._mask_local])
Пример #22
0
 def test_getitem_slice(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(6, sim.IF_cond_alpha())
     p3 = sim.Population(3, sim.IF_curr_exp())
     a = sim.Assembly(p3, p1, p2)
     a1 = a[0:3]
     self.assertIsInstance(a1, sim.Assembly)
     self.assertEqual(len(a1.populations), 1)
     assert_array_equal(a1.populations[0].all_cells, p3[:].all_cells)
     a2 = a[2:8]
     self.assertEqual(len(a2.populations), 2)
     assert_array_equal(a2.populations[0].all_cells, p3[2:].all_cells)
     assert_array_equal(a2.populations[1].all_cells, p1[:5].all_cells)
Пример #23
0
 def test_getitem_array(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(6, sim.IF_cond_alpha())
     p3 = sim.Population(3, sim.IF_curr_exp())
     a = sim.Assembly(p3, p1, p2)
     a1 = a[3, 5, 6, 10]
     self.assertIsInstance(a1, sim.Assembly)
     self.assertEqual(len(a1.populations), 1)
     assert_array_equal(a1.populations[0].all_cells, [p1[0], p1[2], p1[3], p1[7]])
     a2 = a[17, 2, 10, 11, 19]
     self.assertEqual(len(a2.populations), 3)
     assert_array_equal(a2.populations[0].all_cells, p3[2:].all_cells)
     assert_array_equal(a2.populations[1].all_cells, p1[7:9].all_cells)
     assert_array_equal(a2.populations[2].all_cells, p2[3, 5].all_cells)
Пример #24
0
 def test_save_positions(self, sim=sim):
     import os
     p1 = sim.Population(2, sim.IF_cond_exp())
     p2 = sim.Population(2, sim.IF_cond_exp())
     p1.positions = numpy.arange(0, 6).reshape((2, 3)).T
     p2.positions = numpy.arange(6, 12).reshape((2, 3)).T
     a = sim.Assembly(p1, p2, label="test")
     output_file = Mock()
     a.save_positions(output_file)
     assert_array_equal(output_file.write.call_args[0][0],
                         numpy.array([[0, 0, 1, 2],
                                      [1, 3, 4, 5],
                                      [2, 6, 7, 8],
                                      [3, 9, 10, 11]]))
     self.assertEqual(output_file.write.call_args[0][1], {'assembly': a.label})
Пример #25
0
 def test_get_data_with_gather(self, sim=sim):
     t1 = 12.3
     t2 = 13.4
     t3 = 14.5
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(6, sim.IF_cond_alpha())
     p3 = sim.Population(3, sim.EIF_cond_exp_isfa_ista())
     a = sim.Assembly(p3, p1, p2)
     a.record('v')
     sim.run(t1)
     # what if we call p.record between two run statements?
     # would be nice to get an AnalogSignal with a non-zero t_start
     # but then need to make sure we get the right initial value
     sim.run(t2)
     sim.reset()
     a.record('spikes')
     p3.record('w')
     sim.run(t3)
     data = a.get_data(gather=True)
     self.assertEqual(len(data.segments), 2)
     seg0 = data.segments[0]
     self.assertEqual(len(seg0.analogsignals), 1)
     v = seg0.filter(name='v')[0]
     self.assertEqual(v.name, 'v')
     num_points = int(round((t1 + t2) / sim.get_time_step())) + 1
     self.assertEqual(v.shape, (num_points, a.size))
     self.assertEqual(v.t_start, 0.0 * pq.ms)
     self.assertEqual(v.units, pq.mV)
     self.assertEqual(v.sampling_period, 0.1 * pq.ms)
     self.assertEqual(len(seg0.spiketrains), 0)
     
     seg1 = data.segments[1]
     self.assertEqual(len(seg1.analogsignals), 2)
     w = seg1.filter(name='w')[0]
     self.assertEqual(w.name, 'w')
     num_points = int(round(t3 / sim.get_time_step())) + 1
     self.assertEqual(w.shape, (num_points, p3.size))
     self.assertEqual(v.t_start, 0.0)
     self.assertEqual(len(seg1.spiketrains), a.size)
Пример #26
0
 def test_local_cells(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(11, sim.IF_cond_exp())
     a = sim.Assembly(p1, p2, label="test")
     assert_array_equal(a.local_cells, numpy.append(p1.local_cells, p2.local_cells))
Пример #27
0
 def test__len__(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(11, sim.IF_cond_exp())
     a = sim.Assembly(p1, p2, label="test")
     self.assertEqual(len(a), len(p1) + len(p2))
Пример #28
0
 def test_size_property(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(11, sim.IF_cond_exp())
     a = sim.Assembly(p1, p2, label="test")
     self.assertEqual(a.size, p1.size + p2.size)
Пример #29
0
 def test_create_with_two_populations(self, sim=sim):
     p1 = sim.Population(11, sim.IF_cond_exp())
     p2 = sim.Population(11, sim.IF_cond_exp())
     a = sim.Assembly(p1, p2, label="test")
     self.assertEqual(a.populations, [p1, p2])
     self.assertEqual(a.label, "test")
Пример #30
0
 def test_create_with_one_population(self, sim=sim):
     p = sim.Population(11, sim.IF_cond_exp())
     a = sim.Assembly(p)
     self.assertEqual(a.populations, [p])
     self.assertIsInstance(a.label, basestring)