def setUp(self): self.nchildren = 2 self.seed1 = 0 self.seed2 = 10000 self.chx1 = fake_neo(ChannelIndex, seed=self.seed1, n=self.nchildren) self.chx2 = fake_neo(ChannelIndex, seed=self.seed2, n=self.nchildren) self.targobj = self.chx1 self.units1 = self.chx1.units self.units2 = self.chx2.units self.sigarrs1 = self.chx1.analogsignals self.sigarrs2 = self.chx2.analogsignals self.irrsig1 = self.chx1.irregularlysampledsignals self.irrsig2 = self.chx2.irregularlysampledsignals self.units1a = clone_object(self.units1) self.sigarrs1a = clone_object(self.sigarrs1, n=2) self.irrsig1a = clone_object(self.irrsig1, n=2) self.trains1 = [[train for train in unit.spiketrains] for unit in self.units1] self.trains2 = [[train for train in unit.spiketrains] for unit in self.units2] self.trains1 = sum(self.trains1, []) self.trains2 = sum(self.trains2, [])
def setUp(self): self.nchildren = 2 blk = fake_neo(Block, seed=0, n=self.nchildren) self.unit1, self.unit2, self.unit3, self.unit4 = blk.list_units self.seg1, self.seg2 = blk.segments self.targobj = self.seg1 self.seed1 = self.seg1.annotations['seed'] self.seed2 = self.seg2.annotations['seed'] del self.seg1.annotations['i'] del self.seg2.annotations['i'] del self.seg1.annotations['j'] del self.seg2.annotations['j'] self.sigarrs1 = self.seg1.analogsignals self.sigarrs2 = self.seg2.analogsignals self.irsigs1 = self.seg1.irregularlysampledsignals self.irsigs2 = self.seg2.irregularlysampledsignals self.trains1 = self.seg1.spiketrains self.trains2 = self.seg2.spiketrains self.epcs1 = self.seg1.epochs self.epcs2 = self.seg2.epochs self.evts1 = self.seg1.events self.evts2 = self.seg2.events self.sigarrs1a = clone_object(self.sigarrs1, n=2) self.irsigs1a = clone_object(self.irsigs1) self.trains1a = clone_object(self.trains1) self.epcs1a = clone_object(self.epcs1) self.evts1a = clone_object(self.evts1)
def test__merge(self): blk1a = fake_neo(Block, seed=self.seed1, n=self.nchildren) assert_same_sub_schema(self.blk1, blk1a) blk1a.annotate(seed=self.seed2) blk1a.segments.append(self.segs2[0]) blk1a.merge(self.blk2) segs1a = clone_object(self.blk1).segments chxs1a = clone_object(self.chxs1) assert_same_sub_schema(chxs1a + self.chxs2, blk1a.channel_indexes) assert_same_sub_schema(segs1a + self.segs2, blk1a.segments)
def test__merge(self): blk1a = fake_neo(Block, seed=self.seed1, n=self.nchildren) assert_same_sub_schema(self.blk1, blk1a) blk1a.annotate(seed=self.seed2) blk1a.segments.append(self.segs2[0]) blk1a.merge(self.blk2) segs1a = clone_object(self.blk1).segments rcgs1a = clone_object(self.rcgs1) assert_same_sub_schema(rcgs1a + self.rcgs2, blk1a.recordingchannelgroups) assert_same_sub_schema(segs1a + self.segs2, blk1a.segments)
def setUp(self): self.nchildren = 2 self.seed1 = 0 self.seed2 = 10000 self.unit1 = fake_neo(Unit, seed=self.seed1, n=self.nchildren) self.unit2 = fake_neo(Unit, seed=self.seed2, n=self.nchildren) self.targobj = self.unit1 self.spikes1 = self.unit1.spikes self.spikes2 = self.unit2.spikes self.trains1 = self.unit1.spiketrains self.trains2 = self.unit2.spiketrains self.spikes1a = clone_object(self.spikes1) self.trains1a = clone_object(self.trains1)
def setUp(self): self.nchildren = 2 self.seed1 = 0 self.seed2 = 10000 self.rcg1 = fake_neo(RecordingChannelGroup, seed=self.seed1, n=self.nchildren) self.rcg2 = fake_neo(RecordingChannelGroup, seed=self.seed2, n=self.nchildren) self.targobj = self.rcg1 self.rchans1 = self.rcg1.recordingchannels self.rchans2 = self.rcg2.recordingchannels self.units1 = self.rcg1.units self.units2 = self.rcg2.units self.sigarrs1 = self.rcg1.analogsignalarrays self.sigarrs2 = self.rcg2.analogsignalarrays self.rchans1a = clone_object(self.rchans1) self.units1a = clone_object(self.units1) self.sigarrs1a = clone_object(self.sigarrs1, n=2) self.spikes1 = [[spike for spike in unit.spikes] for unit in self.units1] self.spikes2 = [[spike for spike in unit.spikes] for unit in self.units2] self.trains1 = [[train for train in unit.spiketrains] for unit in self.units1] self.trains2 = [[train for train in unit.spiketrains] for unit in self.units2] self.sigs1 = [[sig for sig in rchan.analogsignals] for rchan in self.rchans1] self.sigs2 = [[sig for sig in rchan.analogsignals] for rchan in self.rchans2] self.irsigs1 = [[irsig for irsig in rchan.irregularlysampledsignals] for rchan in self.rchans1] self.irsigs2 = [[irsig for irsig in rchan.irregularlysampledsignals] for rchan in self.rchans2] self.spikes1 = sum(self.spikes1, []) self.spikes2 = sum(self.spikes2, []) self.trains1 = sum(self.trains1, []) self.trains2 = sum(self.trains2, []) self.sigs1 = sum(self.sigs1, []) self.sigs2 = sum(self.sigs2, []) self.irsigs1 = sum(self.irsigs1, []) self.irsigs2 = sum(self.irsigs2, [])
def setUp(self): self.nchildren = 2 self.seed1 = 0 self.seed2 = 10000 self.rchan1 = fake_neo(RecordingChannel, seed=self.seed1, n=self.nchildren) self.rchan2 = fake_neo(RecordingChannel, seed=self.seed2, n=self.nchildren) self.targobj = self.rchan1 self.sigs1 = self.rchan1.analogsignals self.sigs2 = self.rchan2.analogsignals self.irsigs1 = self.rchan1.irregularlysampledsignals self.irsigs2 = self.rchan2.irregularlysampledsignals self.sigs1a = clone_object(self.sigs1) self.irsigs1a = clone_object(self.irsigs1)
def test__children(self): segs1a = clone_object(self.blk1).segments chxs1a = clone_object(self.chxs1) self.assertEqual(self.blk1._container_child_objects, ('Segment', 'ChannelIndex')) self.assertEqual(self.blk1._data_child_objects, ()) self.assertEqual(self.blk1._single_parent_objects, ()) self.assertEqual(self.blk1._multi_child_objects, ()) self.assertEqual(self.blk1._multi_parent_objects, ()) self.assertEqual(self.blk1._child_properties, ('Unit', )) self.assertEqual(self.blk1._single_child_objects, ('Segment', 'ChannelIndex')) self.assertEqual(self.blk1._container_child_containers, ('segments', 'channel_indexes')) self.assertEqual(self.blk1._data_child_containers, ()) self.assertEqual(self.blk1._single_child_containers, ('segments', 'channel_indexes')) self.assertEqual(self.blk1._single_parent_containers, ()) self.assertEqual(self.blk1._multi_child_containers, ()) self.assertEqual(self.blk1._multi_parent_containers, ()) self.assertEqual(self.blk1._child_objects, ('Segment', 'ChannelIndex')) self.assertEqual(self.blk1._child_containers, ('segments', 'channel_indexes')) self.assertEqual(self.blk1._parent_objects, ()) self.assertEqual(self.blk1._parent_containers, ()) self.assertEqual(len(self.blk1._single_children), 2 * self.nchildren) self.assertEqual(len(self.blk1._multi_children), 0) self.assertEqual(len(self.blk1.data_children), 0) self.assertEqual(len(self.blk1.data_children_recur), 1 * self.nchildren**3 + 4 * self.nchildren**2) self.assertEqual(len(self.blk1.container_children), 2 * self.nchildren) self.assertEqual(len(self.blk1.container_children_recur), 2 * self.nchildren + 1 * self.nchildren**2) self.assertEqual(len(self.blk1.children), 2 * self.nchildren) self.assertEqual( len(self.blk1.children_recur), 2 * self.nchildren + 5 * self.nchildren**2 + 1 * self.nchildren**3) self.assertEqual(self.blk1._multi_children, ()) assert_same_sub_schema(list(self.blk1._single_children), self.segs1 + self.chxs1) assert_same_sub_schema(list(self.blk1.container_children), self.segs1 + self.chxs1) assert_same_sub_schema( list(self.blk1.container_children_recur), self.segs1 + self.chxs1 + self.units1[:2] + self.units1[2:]) assert_same_sub_schema( list(self.blk1.data_children_recur), self.sigarrs1[::2] + self.epcs1[:2] + self.evts1[:2] + self.irsigs1[::2] + self.trains1[::2] + self.sigarrs1[1::2] + self.epcs1[2:] + self.evts1[2:] + self.irsigs1[1::2] + self.trains1[1::2], exclude=['channel_index']) assert_same_sub_schema(list(self.blk1.children), segs1a + chxs1a) assert_same_sub_schema( list(self.blk1.children_recur), self.sigarrs1[::2] + self.epcs1[:2] + self.evts1[:2] + self.irsigs1[::2] + self.trains1[::2] + self.sigarrs1[1::2] + self.epcs1[2:] + self.evts1[2:] + self.irsigs1[1::2] + self.trains1[1::2] + self.segs1 + self.chxs1 + self.units1[:2] + self.units1[2:], exclude=['channel_index'])
def test__children(self): segs1a = clone_object(self.blk1).segments rcgs1a = clone_object(self.rcgs1) self.assertEqual(self.blk1._container_child_objects, ('Segment', 'RecordingChannelGroup')) self.assertEqual(self.blk1._data_child_objects, ()) self.assertEqual(self.blk1._single_parent_objects, ()) self.assertEqual(self.blk1._multi_child_objects, ()) self.assertEqual(self.blk1._multi_parent_objects, ()) self.assertEqual(self.blk1._child_properties, ('Unit', 'RecordingChannel')) self.assertEqual(self.blk1._single_child_objects, ('Segment', 'RecordingChannelGroup')) self.assertEqual(self.blk1._container_child_containers, ('segments', 'recordingchannelgroups')) self.assertEqual(self.blk1._data_child_containers, ()) self.assertEqual(self.blk1._single_child_containers, ('segments', 'recordingchannelgroups')) self.assertEqual(self.blk1._single_parent_containers, ()) self.assertEqual(self.blk1._multi_child_containers, ()) self.assertEqual(self.blk1._multi_parent_containers, ()) self.assertEqual(self.blk1._child_objects, ('Segment', 'RecordingChannelGroup')) self.assertEqual(self.blk1._child_containers, ('segments', 'recordingchannelgroups')) self.assertEqual(self.blk1._parent_objects, ()) self.assertEqual(self.blk1._parent_containers, ()) self.assertEqual(len(self.blk1._single_children), 2*self.nchildren) self.assertEqual(len(self.blk1._multi_children), 0) self.assertEqual(len(self.blk1.data_children), 0) self.assertEqual(len(self.blk1.data_children_recur), 4*self.nchildren**3 + 5*self.nchildren**2) self.assertEqual(len(self.blk1.container_children), 2*self.nchildren) self.assertEqual(len(self.blk1.container_children_recur), 2*self.nchildren + 2*self.nchildren**2) self.assertEqual(len(self.blk1.children), 2*self.nchildren) self.assertEqual(len(self.blk1.children_recur), 2*self.nchildren + 2*self.nchildren**2 + 4*self.nchildren**3 + 5*self.nchildren**2) self.assertEqual(self.blk1._multi_children, ()) assert_same_sub_schema(list(self.blk1._single_children), self.segs1 + self.rcgs1) assert_same_sub_schema(list(self.blk1.container_children), self.segs1 + self.rcgs1) assert_same_sub_schema(list(self.blk1.container_children_recur), self.segs1 + self.rcgs1 + self.units1[:2] + self.rchans1[:2] + self.units1[2:] + self.rchans1[2:]) assert_same_sub_schema(list(self.blk1.data_children_recur), self.sigs1[::2] + self.sigarrs1[::2] + self.epcs1[:2] + self.epcas1[:2] + self.evts1[:2] + self.evtas1[:2] + self.irsigs1[::2] + self.spikes1[::2] + self.trains1[::2] + self.sigs1[1::2] + self.sigarrs1[1::2] + self.epcs1[2:] + self.epcas1[2:] + self.evts1[2:] + self.evtas1[2:] + self.irsigs1[1::2] + self.spikes1[1::2] + self.trains1[1::2], exclude=['channel_index']) assert_same_sub_schema(list(self.blk1.children), segs1a + rcgs1a) assert_same_sub_schema(list(self.blk1.children_recur), self.sigs1[::2] + self.sigarrs1[::2] + self.epcs1[:2] + self.epcas1[:2] + self.evts1[:2] + self.evtas1[:2] + self.irsigs1[::2] + self.spikes1[::2] + self.trains1[::2] + self.sigs1[1::2] + self.sigarrs1[1::2] + self.epcs1[2:] + self.epcas1[2:] + self.evts1[2:] + self.evtas1[2:] + self.irsigs1[1::2] + self.spikes1[1::2] + self.trains1[1::2] + self.segs1 + self.rcgs1 + self.units1[:2] + self.rchans1[:2] + self.units1[2:] + self.rchans1[2:], exclude=['channel_index'])
def test__children(self): segs1a = clone_object(self.blk1).segments rcgs1a = clone_object(self.rcgs1) self.assertEqual(self.blk1._container_child_objects, ('Segment', 'RecordingChannelGroup')) self.assertEqual(self.blk1._data_child_objects, ()) self.assertEqual(self.blk1._single_parent_objects, ()) self.assertEqual(self.blk1._multi_child_objects, ()) self.assertEqual(self.blk1._multi_parent_objects, ()) self.assertEqual(self.blk1._child_properties, ('Unit', 'RecordingChannel')) self.assertEqual(self.blk1._single_child_objects, ('Segment', 'RecordingChannelGroup')) self.assertEqual(self.blk1._container_child_containers, ('segments', 'recordingchannelgroups')) self.assertEqual(self.blk1._data_child_containers, ()) self.assertEqual(self.blk1._single_child_containers, ('segments', 'recordingchannelgroups')) self.assertEqual(self.blk1._single_parent_containers, ()) self.assertEqual(self.blk1._multi_child_containers, ()) self.assertEqual(self.blk1._multi_parent_containers, ()) self.assertEqual(self.blk1._child_objects, ('Segment', 'RecordingChannelGroup')) self.assertEqual(self.blk1._child_containers, ('segments', 'recordingchannelgroups')) self.assertEqual(self.blk1._parent_objects, ()) self.assertEqual(self.blk1._parent_containers, ()) self.assertEqual(len(self.blk1._single_children), 2 * self.nchildren) self.assertEqual(len(self.blk1._multi_children), 0) self.assertEqual(len(self.blk1.data_children), 0) self.assertEqual(len(self.blk1.data_children_recur), 4 * self.nchildren**3 + 5 * self.nchildren**2) self.assertEqual(len(self.blk1.container_children), 2 * self.nchildren) self.assertEqual(len(self.blk1.container_children_recur), 2 * self.nchildren + 2 * self.nchildren**2) self.assertEqual(len(self.blk1.children), 2 * self.nchildren) self.assertEqual( len(self.blk1.children_recur), 2 * self.nchildren + 2 * self.nchildren**2 + 4 * self.nchildren**3 + 5 * self.nchildren**2) self.assertEqual(self.blk1._multi_children, ()) assert_same_sub_schema(list(self.blk1._single_children), self.segs1 + self.rcgs1) assert_same_sub_schema(list(self.blk1.container_children), self.segs1 + self.rcgs1) assert_same_sub_schema( list(self.blk1.container_children_recur), self.segs1 + self.rcgs1 + self.units1[:2] + self.rchans1[:2] + self.units1[2:] + self.rchans1[2:]) assert_same_sub_schema( list(self.blk1.data_children_recur), self.sigs1[::2] + self.sigarrs1[::2] + self.epcs1[:2] + self.epcas1[:2] + self.evts1[:2] + self.evtas1[:2] + self.irsigs1[::2] + self.spikes1[::2] + self.trains1[::2] + self.sigs1[1::2] + self.sigarrs1[1::2] + self.epcs1[2:] + self.epcas1[2:] + self.evts1[2:] + self.evtas1[2:] + self.irsigs1[1::2] + self.spikes1[1::2] + self.trains1[1::2], exclude=['channel_index']) assert_same_sub_schema(list(self.blk1.children), segs1a + rcgs1a) assert_same_sub_schema( list(self.blk1.children_recur), self.sigs1[::2] + self.sigarrs1[::2] + self.epcs1[:2] + self.epcas1[:2] + self.evts1[:2] + self.evtas1[:2] + self.irsigs1[::2] + self.spikes1[::2] + self.trains1[::2] + self.sigs1[1::2] + self.sigarrs1[1::2] + self.epcs1[2:] + self.epcas1[2:] + self.evts1[2:] + self.evtas1[2:] + self.irsigs1[1::2] + self.spikes1[1::2] + self.trains1[1::2] + self.segs1 + self.rcgs1 + self.units1[:2] + self.rchans1[:2] + self.units1[2:] + self.rchans1[2:], exclude=['channel_index'])
def test__children(self): segs1a = clone_object(self.blk1).segments chxs1a = clone_object(self.chxs1) self.assertEqual(self.blk1._container_child_objects, ('Segment', 'ChannelIndex')) self.assertEqual(self.blk1._data_child_objects, ()) self.assertEqual(self.blk1._single_parent_objects, ()) self.assertEqual(self.blk1._multi_child_objects, ()) self.assertEqual(self.blk1._multi_parent_objects, ()) self.assertEqual(self.blk1._child_properties, ('Unit',)) self.assertEqual(self.blk1._single_child_objects, ('Segment', 'ChannelIndex')) self.assertEqual(self.blk1._container_child_containers, ('segments', 'channel_indexes')) self.assertEqual(self.blk1._data_child_containers, ()) self.assertEqual(self.blk1._single_child_containers, ('segments', 'channel_indexes')) self.assertEqual(self.blk1._single_parent_containers, ()) self.assertEqual(self.blk1._multi_child_containers, ()) self.assertEqual(self.blk1._multi_parent_containers, ()) self.assertEqual(self.blk1._child_objects, ('Segment', 'ChannelIndex')) self.assertEqual(self.blk1._child_containers, ('segments', 'channel_indexes')) self.assertEqual(self.blk1._parent_objects, ()) self.assertEqual(self.blk1._parent_containers, ()) self.assertEqual(len(self.blk1._single_children), 2*self.nchildren) self.assertEqual(len(self.blk1._multi_children), 0) self.assertEqual(len(self.blk1.data_children), 0) self.assertEqual(len(self.blk1.data_children_recur), 1*self.nchildren**3 + 4*self.nchildren**2) self.assertEqual(len(self.blk1.container_children), 2*self.nchildren) self.assertEqual(len(self.blk1.container_children_recur), 2*self.nchildren + 1*self.nchildren**2) self.assertEqual(len(self.blk1.children), 2*self.nchildren) self.assertEqual(len(self.blk1.children_recur), 2*self.nchildren + 5*self.nchildren**2 + 1*self.nchildren**3) self.assertEqual(self.blk1._multi_children, ()) assert_same_sub_schema(list(self.blk1._single_children), self.segs1 + self.chxs1) assert_same_sub_schema(list(self.blk1.container_children), self.segs1 + self.chxs1) assert_same_sub_schema(list(self.blk1.container_children_recur), self.segs1 + self.chxs1 + self.units1[:2] + self.units1[2:]) assert_same_sub_schema(list(self.blk1.data_children_recur), self.sigarrs1[::2] + self.epcs1[:2] + self.evts1[:2] + self.irsigs1[::2] + self.trains1[::2] + self.sigarrs1[1::2] + self.epcs1[2:] + self.evts1[2:] + self.irsigs1[1::2] + self.trains1[1::2], exclude=['channel_index']) assert_same_sub_schema(list(self.blk1.children), segs1a + chxs1a) assert_same_sub_schema(list(self.blk1.children_recur), self.sigarrs1[::2] + self.epcs1[:2] + self.evts1[:2] + self.irsigs1[::2] + self.trains1[::2] + self.sigarrs1[1::2] + self.epcs1[2:] + self.evts1[2:] + self.irsigs1[1::2] + self.trains1[1::2] + self.segs1 + self.chxs1 + self.units1[:2] + self.units1[2:], exclude=['channel_index'])
del self_seg2.annotations['j'] self_sigarrs1 = self_seg1.analogsignals self_sigarrs2 = self_seg2.analogsignals self_irsigs1 = self_seg1.irregularlysampledsignals self_irsigs2 = self_seg2.irregularlysampledsignals self_trains1 = self_seg1.spiketrains self_trains2 = self_seg2.spiketrains self_epcs1 = self_seg1.epochs self_epcs2 = self_seg2.epochs self_evts1 = self_seg1.events self_evts2 = self_seg2.events self_sigarrs1a = clone_object(self_sigarrs1, n=2) self_irsigs1a = clone_object(self_irsigs1) self_trains1a = clone_object(self_trains1) self_epcs1a = clone_object(self_epcs1) self_evts1a = clone_object(self_evts1) seg1a = fake_neo(Block, seed=self_seed1, n=self_nchildren).segments[0] assert_same_sub_schema(self_seg1, seg1a) seg1a.annotations.pop("i") # check_creation doesn't expect these seg1a.annotations.pop("j") # so we delete them self_check_creation(seg1a) seg1a.epochs.append(self_epcs2[0]) seg1a.annotate(seed=self_seed2) seg1a.merge(self_seg2) self_check_creation(seg1a)