def test_id_to_index_with_invalid_id(self, sim=sim): p = sim.Population(11, sim.IF_curr_alpha()) pv = p[2, 5, 7, 8] self.assertRaises(IndexError, pv.id_to_index, p[0]) self.assertRaises(IndexError, pv.id_to_index, p[9])
def test_describe(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) a = sim.Assembly(p1, p2) self.assertIsInstance(a.describe(), basestring) self.assertIsInstance(a.describe(template=None), dict)
def test_ids_should_not_be_counted_twice(self, sim=sim): p = sim.Population(11, sim.IF_cond_exp()) pv1 = p[0:5] a1 = sim.Assembly(p, pv1) self.assertEqual(a1.size, p.size)
def test_all_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.all_cells, numpy.append(p1.all_cells, p2.all_cells))
def test_add_inplace_population(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) a = sim.Assembly(p1) a += p2 self.assertEqual(a.populations, [p1, p2])
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)
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)
def test_set_array(self, sim=sim): p = sim.Population(5, sim.IF_cond_exp, {'v_thresh': -54.3}) pv = p[2:] pv.set(v_thresh=-50.0 + numpy.arange(3)) assert_array_equal(p.get('v_thresh', gather=True), numpy.array([-54.3, -54.3, -50.0, -49.0, -48.0]))
def test_record_v(self, sim=sim): pv = sim.Population(2, sim.EIF_cond_exp_isfa_ista())[0:1] pv.record = Mock() pv.record_v("arg1") pv.record.assert_called_with('v', "arg1")
def test_iter(self, sim=sim): p = sim.Population(33, sim.IF_curr_exp()) pv = p[1, 5, 6, 8, 11, 12] itr = pv.__iter__() assert hasattr(itr, "next") or hasattr(itr, "__next__") self.assertEqual(len(list(itr)), 6)
def test_set_invalid_name(self, sim=sim): p = sim.Population(9, sim.HH_cond_exp()) pv = p[3:5] self.assertRaises(errors.NonExistentParameterError, pv.set, foo=13.2)
def test__len__(self, sim=sim): # len(p) should give the global size (all MPI nodes) p = sim.Population(77, sim.IF_cond_exp()) pv = p[1, 5, 6, 8, 11, 12, 15, 16, 19, 20] self.assertEqual(len(pv), pv.size, 10)
def test__getitem__invalid(self, sim=sim): p = sim.Population(23, sim.IF_curr_alpha()) pv = p[1, 5, 6, 8, 11, 12, 15, 16, 19, 20] self.assertRaises(TypeError, pv.__getitem__, "foo")
def test_get_positions(self, sim=sim): p = sim.Population(11, sim.IF_cond_exp()) pos = numpy.arange(33).reshape(3, 11) p.positions = pos pv = p[2, 5, 7, 8] assert_array_equal(pv.positions, pos[:, [2, 5, 7, 8]])
def test_not_conductance_based(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p3 = sim.Population(3, sim.IF_curr_exp()) a2 = sim.Assembly(p1, p3) self.assertFalse(a2.conductance_based)
def test_record_gsyn(self, sim=sim): pv = sim.Population(2, sim.EIF_cond_exp_isfa_ista())[1:] pv.record = Mock() pv.record_gsyn("arg1") pv.record.assert_called_with(['gsyn_exc', 'gsyn_inh'], "arg1")
def test_id_to_index_with_nonexistent_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.assertRaises(IndexError, a.id_to_index, p3.last_id + 1)
def test_record_invalid_variable(self, sim=sim): pv = sim.Population(14, sim.IF_curr_alpha())[::3] self.assertRaises( errors.RecordingError, pv.record, ('v', 'gsyn_exc')) # can't record gsyn_exc from this celltype
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")
def test_mean_spike_count(self, sim=sim): p = sim.Population(14, sim.EIF_cond_exp_isfa_ista()) pv = p[2::3] pv.record('spikes') sim.run(100.0) self.assertEqual(p.mean_spike_count(), 2.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))
def test_inject_into_invalid_celltype(self, sim=sim): pv = sim.Population(3, sim.SpikeSourceArray())[:2] self.assertRaises(TypeError, pv.inject, Mock())
def test_iter(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") assembly_ids = [id for id in a]
def test_describe(self, sim=sim): pv = sim.Population(11, sim.IF_cond_exp())[::4] self.assertIsInstance(pv.describe(), basestring) self.assertIsInstance(pv.describe(template=None), dict)
def test_add_invalid_object(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) a = sim.Assembly(p1, p2) self.assertRaises(TypeError, a.__add__, 42) self.assertRaises(TypeError, a.__iadd__, 42)
def test__non_homogeneous_synapses(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p3 = sim.Population(3, sim.IF_curr_exp()) a2 = sim.Assembly(p1, p3) self.assertFalse(a2._homogeneous_synapses)
def test_repr(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.assertIsInstance(repr(a), str)
def test_conductance_based(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(6, sim.IF_cond_alpha()) a1 = sim.Assembly(p1, p2) self.assertTrue(a1.conductance_based)
def test__homogeneous_synapses(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(6, sim.IF_cond_alpha()) a1 = sim.Assembly(p1, p2) self.assertTrue(a1._homogeneous_synapses)
def test_id_to_index_with_array(self, sim=sim): p = sim.Population(121, sim.IF_curr_alpha()) pv = p[2, 5, 7, 8, 19, 37, 49, 82, 83, 99] assert_array_equal(pv.id_to_index(pv.all_cells[3:9:2]), numpy.arange(3, 9, 2))