def test_create_with_slice_selector(self, sim=sim): p = sim.Population(11, sim.HH_cond_exp()) mask1 = slice(0, 9, 1) pv1 = sim.PopulationView(parent=p, selector=mask1) assert_array_equal(pv1.all_cells, p.all_cells[0:9]) mask2 = slice(3, 9, 2) pv2 = sim.PopulationView(parent=pv1, selector=mask2) self.assertEqual(pv2.parent, pv1) # or would it be better to resolve the parent chain up to an actual Population? assert_array_equal(pv2.all_cells, numpy.array([p.all_cells[3], p.all_cells[5], p.all_cells[7]]))
def test_create_with_index_array_selector(self, sim=sim): p = sim.Population(11, sim.IF_cond_alpha()) mask = numpy.array([3, 5, 7]) pv = sim.PopulationView(parent=p, selector=mask) assert_array_equal(pv.all_cells, numpy.array( [p.all_cells[3], p.all_cells[5], p.all_cells[7]])) assert_array_equal(pv.mask, mask)
def test_create_with_boolean_array_selector(self, sim=sim): p = sim.Population(11, sim.IF_cond_exp()) mask = numpy.array([0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0], dtype=bool) pv = sim.PopulationView(parent=p, selector=mask) assert_array_equal( pv.all_cells, numpy.array([p.all_cells[3], p.all_cells[5], p.all_cells[7]]))
def test_get_positions(self, sim=sim): p = sim.Population(11, sim.IF_curr_exp()) ppos = numpy.random.uniform(size=(3, 11)) p._positions = ppos pv = sim.PopulationView(parent=p, selector=slice(3, 9, 2)) assert_array_equal(pv.positions, numpy.array([ppos[:, 3], ppos[:, 5], ppos[:, 7]]).T)
def test_create_with_slice_selector(self, sim=sim): p = sim.Population(11, sim.IF_cond_exp()) mask = slice(3, 9, 2) pv = sim.PopulationView(parent=p, selector=mask) self.assertEqual(pv.parent, p) self.assertEqual(pv.size, 3) self.assertEqual(pv.mask, mask) assert_array_equal(pv.all_cells, numpy.array([p.all_cells[3], p.all_cells[5], p.all_cells[7]])) #assert_array_equal(pv.local_cells, numpy.array([p.all_cells[3]])) #assert_array_equal(pv._mask_local, numpy.array([1,0,0], dtype=bool)) self.assertEqual(pv.celltype, p.celltype) self.assertEqual(pv.first_id, p.all_cells[3]) self.assertEqual(pv.last_id, p.all_cells[7])
def test_structure_property(self, sim=sim): p = sim.Population(11, sim.SpikeSourcePoisson()) mask = slice(3, 9, 2) pv = sim.PopulationView(parent=p, selector=mask) self.assertEqual(pv.structure, p.structure)