def testInitDefaults(self): rcg = RecordingChannelGroup() self.assertEqual(rcg.name, None) self.assertEqual(rcg.file_origin, None) self.assertEqual(rcg.recordingchannels, []) self.assertEqual(rcg.analogsignalarrays, []) assert_arrays_equal(rcg.channel_names, np.array([])) assert_arrays_equal(rcg.channel_indexes, np.array([]))
def test__recordingchannelgroup__init_defaults(self): rcg = RecordingChannelGroup() assert_neo_object_is_compliant(rcg) self.assertEqual(rcg.name, None) self.assertEqual(rcg.file_origin, None) self.assertEqual(rcg.recordingchannels, []) self.assertEqual(rcg.analogsignalarrays, []) assert_arrays_equal(rcg.channel_names, np.array([], dtype='S')) assert_arrays_equal(rcg.channel_indexes, np.array([]))
def testInit(self): rcg = RecordingChannelGroup(file_origin='temp.dat', channel_indexes=np.array([1])) self.assertEqual(rcg.file_origin, 'temp.dat') self.assertEqual(rcg.name, None) self.assertEqual(rcg.recordingchannels, []) self.assertEqual(rcg.analogsignalarrays, []) assert_arrays_equal(rcg.channel_names, np.array([])) assert_arrays_equal(rcg.channel_indexes, np.array([1]))
def setup_recordingchannelgroups(self): params = {'testarg2': 'yes', 'testarg3': True} self.rcg1 = RecordingChannelGroup(name='test', description='tester 1', file_origin='test.file', testarg1=1, **params) self.rcg2 = RecordingChannelGroup(name='test', description='tester 2', file_origin='test.file', testarg1=1, **params) self.rcg1.annotate(testarg1=1.1, testarg0=[1, 2, 3]) self.rcg2.annotate(testarg11=1.1, testarg10=[1, 2, 3]) self.rcg1.units = self.units1 self.rcg2.units = self.units2 self.rcg1.recordingchannels = self.rchan1 self.rcg2.recordingchannels = self.rchan2 self.rcg1.analogsignalarrays = self.sigarr1 self.rcg2.analogsignalarrays = self.sigarr2 self.rcg1.create_many_to_one_relationship() self.rcg2.create_many_to_one_relationship()
def test_block_merge(self): blk1 = Block(name='block 1') blk2 = Block(name='block 2') rcg3 = RecordingChannelGroup(name=self.rcgname1) rcg3.units = self.units1 + [self.units2[0]] rcg3.recordingchannels = self.chan1 + [self.chan2[1]] blk1.recordingchannelgroups = [self.rcg1] blk2.recordingchannelgroups = [self.rcg2, rcg3] blk1.segments = self.seg1 blk2.segments = self.seg2 blk1.merge(blk2) rcgres1 = [rcg.name for rcg in blk1.recordingchannelgroups] rcgres2 = [rcg.name for rcg in blk2.recordingchannelgroups] segres1 = [seg.name for seg in blk1.segments] segres2 = [seg.name for seg in blk2.segments] chanres1 = [chan.name for chan in blk1.list_recordingchannels] chanres2 = [chan.name for chan in blk2.list_recordingchannels] unitres1 = [unit.name for unit in blk1.list_units] unitres2 = [unit.name for unit in blk2.list_units] self.assertEqual(rcgres1, [self.rcgname1, self.rcgname2]) self.assertEqual(rcgres2, [self.rcgname2, self.rcgname1]) self.assertEqual(segres1, self.segnames) self.assertEqual(segres2, self.segnames2) self.assertEqual(chanres1, self.channames1 + self.channames2[-2::-1]) self.assertEqual(chanres2, self.channames2[:-1] + self.channames1) self.assertEqual(unitres1, self.unitnames) self.assertEqual(unitres2, self.unitnames2[:-1] + self.unitnames1)
def test_block_merge(self): blk1 = Block(name="block 1") blk2 = Block(name="block 2") rcg3 = RecordingChannelGroup(name=self.rcgname1) rcg3.units = self.units1 + [self.units2[0]] rcg3.recordingchannels = self.chan1 + [self.chan2[1]] blk1.recordingchannelgroups = [self.rcg1] blk2.recordingchannelgroups = [self.rcg2, rcg3] blk1.segments = self.seg1 blk2.segments = self.seg2 blk1.merge(blk2) rcgres1 = [rcg.name for rcg in blk1.recordingchannelgroups] rcgres2 = [rcg.name for rcg in blk2.recordingchannelgroups] segres1 = [seg.name for seg in blk1.segments] segres2 = [seg.name for seg in blk2.segments] chanres1 = [chan.name for chan in blk1.list_recordingchannels] chanres2 = [chan.name for chan in blk2.list_recordingchannels] unitres1 = [unit.name for unit in blk1.list_units] unitres2 = [unit.name for unit in blk2.list_units] self.assertEqual(rcgres1, [self.rcgname1, self.rcgname2]) self.assertEqual(rcgres2, [self.rcgname2, self.rcgname1]) self.assertEqual(segres1, self.segnames) self.assertEqual(segres2, self.segnames2) self.assertEqual(chanres1, self.channames1 + self.channames2[-2::-1]) self.assertEqual(chanres2, self.channames2[:-1] + self.channames1) self.assertEqual(unitres1, self.unitnames) self.assertEqual(unitres2, self.unitnames2[:-1] + self.unitnames1)
def setUp(self): unitname11 = 'unit 1 1' unitname12 = 'unit 1 2' unitname21 = 'unit 2 1' unitname22 = 'unit 2 2' channame11 = 'chan 1 1' channame12 = 'chan 1 2' channame21 = 'chan 2 1' channame22 = 'chan 2 2' segname11 = 'seg 1 1' segname12 = 'seg 1 2' segname21 = 'seg 2 1' segname22 = 'seg 2 2' self.rcgname1 = 'rcg 1' self.rcgname2 = 'rcg 2' self.rcgnames = [self.rcgname1, self.rcgname2] self.unitnames1 = [unitname11, unitname12] self.unitnames2 = [unitname21, unitname22, unitname11] self.unitnames = [unitname11, unitname12, unitname21, unitname22] self.channames1 = [channame11, channame12] self.channames2 = [channame21, channame22, channame11] self.channames = [channame11, channame12, channame21, channame22] self.segnames1 = [segname11, segname12] self.segnames2 = [segname21, segname22, segname11] self.segnames = [segname11, segname12, segname21, segname22] unit11 = Unit(name=unitname11) unit12 = Unit(name=unitname12) unit21 = Unit(name=unitname21) unit22 = Unit(name=unitname22) unit23 = unit11 chan11 = RecordingChannel(name=channame11) chan12 = RecordingChannel(name=channame12) chan21 = RecordingChannel(name=channame21) chan22 = RecordingChannel(name=channame22) chan23 = chan11 seg11 = Segment(name=segname11) seg12 = Segment(name=segname12) seg21 = Segment(name=segname21) seg22 = Segment(name=segname22) seg23 = seg11 self.units1 = [unit11, unit12] self.units2 = [unit21, unit22, unit23] self.units = [unit11, unit12, unit21, unit22] self.chan1 = [chan11, chan12] self.chan2 = [chan21, chan22, chan23] self.chan = [chan11, chan12, chan21, chan22] self.seg1 = [seg11, seg12] self.seg2 = [seg21, seg22, seg23] self.seg = [seg11, seg12, seg21, seg22] self.rcg1 = RecordingChannelGroup(name=self.rcgname1) self.rcg2 = RecordingChannelGroup(name=self.rcgname2) self.rcg = [self.rcg1, self.rcg2] self.rcg1.units = self.units1 self.rcg2.units = self.units2 self.rcg1.recordingchannels = self.chan1 self.rcg2.recordingchannels = self.chan2
class TestRecordingChannelGroup(unittest.TestCase): def setUp(self): self.setup_unit() self.setup_analogsignalarrays() self.setup_recordingchannels() self.setup_recordingchannelgroups() def setup_recordingchannelgroups(self): params = {'testarg2': 'yes', 'testarg3': True} self.rcg1 = RecordingChannelGroup(name='test', description='tester 1', file_origin='test.file', testarg1=1, **params) self.rcg2 = RecordingChannelGroup(name='test', description='tester 2', file_origin='test.file', testarg1=1, **params) self.rcg1.annotate(testarg1=1.1, testarg0=[1, 2, 3]) self.rcg2.annotate(testarg11=1.1, testarg10=[1, 2, 3]) self.rcg1.units = self.units1 self.rcg2.units = self.units2 self.rcg1.recordingchannels = self.rchan1 self.rcg2.recordingchannels = self.rchan2 self.rcg1.analogsignalarrays = self.sigarr1 self.rcg2.analogsignalarrays = self.sigarr2 self.rcg1.create_many_to_one_relationship() self.rcg2.create_many_to_one_relationship() def setup_unit(self): unitname11 = 'unit 1 1' unitname12 = 'unit 1 2' unitname21 = 'unit 2 1' unitname22 = 'unit 2 2' self.unitnames1 = [unitname11, unitname12] self.unitnames2 = [unitname21, unitname22, unitname11] self.unitnames = [unitname11, unitname12, unitname21, unitname22] unit11 = Unit(name=unitname11, channel_indexes=np.array([1])) unit12 = Unit(name=unitname12, channel_indexes=np.array([2])) unit21 = Unit(name=unitname21, channel_indexes=np.array([1])) unit22 = Unit(name=unitname22, channel_indexes=np.array([2])) unit23 = Unit(name=unitname11, channel_indexes=np.array([1])) self.units1 = [unit11, unit12] self.units2 = [unit21, unit22, unit23] self.units = [unit11, unit12, unit21, unit22] def setup_recordingchannels(self): rchanname11 = 'chan 1 1' rchanname12 = 'chan 1 2' rchanname21 = 'chan 2 1' rchanname22 = 'chan 2 2' self.rchannames1 = [rchanname11, rchanname12] self.rchannames2 = [rchanname21, rchanname22, rchanname11] self.rchannames = [rchanname11, rchanname12, rchanname21, rchanname22] rchan11 = RecordingChannel(name=rchanname11) rchan12 = RecordingChannel(name=rchanname12) rchan21 = RecordingChannel(name=rchanname21) rchan22 = RecordingChannel(name=rchanname22) rchan23 = RecordingChannel(name=rchanname11) self.rchan1 = [rchan11, rchan12] self.rchan2 = [rchan21, rchan22, rchan23] self.rchan = [rchan11, rchan12, rchan21, rchan22] def setup_analogsignalarrays(self): sigarrname11 = 'analogsignalarray 1 1' sigarrname12 = 'analogsignalarray 1 2' sigarrname21 = 'analogsignalarray 2 1' sigarrname22 = 'analogsignalarray 2 2' sigarrdata11 = np.arange(0, 10).reshape(5, 2) * pq.mV sigarrdata12 = np.arange(10, 20).reshape(5, 2) * pq.mV sigarrdata21 = np.arange(20, 30).reshape(5, 2) * pq.V sigarrdata22 = np.arange(30, 40).reshape(5, 2) * pq.V sigarrdata112 = np.hstack([sigarrdata11, sigarrdata11]) * pq.mV self.sigarrnames1 = [sigarrname11, sigarrname12] self.sigarrnames2 = [sigarrname21, sigarrname22, sigarrname11] self.sigarrnames = [ sigarrname11, sigarrname12, sigarrname21, sigarrname22 ] sigarr11 = AnalogSignalArray(sigarrdata11, name=sigarrname11, sampling_rate=1 * pq.Hz, channel_index=np.array([1])) sigarr12 = AnalogSignalArray(sigarrdata12, name=sigarrname12, sampling_rate=1 * pq.Hz, channel_index=np.array([2])) sigarr21 = AnalogSignalArray(sigarrdata21, name=sigarrname21, sampling_rate=1 * pq.Hz, channel_index=np.array([1])) sigarr22 = AnalogSignalArray(sigarrdata22, name=sigarrname22, sampling_rate=1 * pq.Hz, channel_index=np.array([2])) sigarr23 = AnalogSignalArray(sigarrdata11, name=sigarrname11, sampling_rate=1 * pq.Hz, channel_index=np.array([1])) sigarr112 = AnalogSignalArray(sigarrdata112, name=sigarrname11, sampling_rate=1 * pq.Hz, channel_index=np.array([1])) self.sigarr1 = [sigarr11, sigarr12] self.sigarr2 = [sigarr21, sigarr22, sigarr23] self.sigarr = [sigarr112, sigarr12, sigarr21, sigarr22] def test__recordingchannelgroup__init_defaults(self): rcg = RecordingChannelGroup() assert_neo_object_is_compliant(rcg) self.assertEqual(rcg.name, None) self.assertEqual(rcg.file_origin, None) self.assertEqual(rcg.recordingchannels, []) self.assertEqual(rcg.analogsignalarrays, []) assert_arrays_equal(rcg.channel_names, np.array([], dtype='S')) assert_arrays_equal(rcg.channel_indexes, np.array([])) def test_recordingchannelgroup__init(self): rcg = RecordingChannelGroup(file_origin='temp.dat', channel_indexes=np.array([1])) assert_neo_object_is_compliant(rcg) self.assertEqual(rcg.file_origin, 'temp.dat') self.assertEqual(rcg.name, None) self.assertEqual(rcg.recordingchannels, []) self.assertEqual(rcg.analogsignalarrays, []) assert_arrays_equal(rcg.channel_names, np.array([], dtype='S')) assert_arrays_equal(rcg.channel_indexes, np.array([1])) def test_recordingchannelgroup__compliance(self): assert_neo_object_is_compliant(self.rcg1) assert_neo_object_is_compliant(self.rcg2) self.assertEqual(self.rcg1.name, 'test') self.assertEqual(self.rcg2.name, 'test') self.assertEqual(self.rcg1.description, 'tester 1') self.assertEqual(self.rcg2.description, 'tester 2') self.assertEqual(self.rcg1.file_origin, 'test.file') self.assertEqual(self.rcg2.file_origin, 'test.file') self.assertEqual(self.rcg1.annotations['testarg0'], [1, 2, 3]) self.assertEqual(self.rcg2.annotations['testarg10'], [1, 2, 3]) self.assertEqual(self.rcg1.annotations['testarg1'], 1.1) self.assertEqual(self.rcg2.annotations['testarg1'], 1) self.assertEqual(self.rcg2.annotations['testarg11'], 1.1) self.assertEqual(self.rcg1.annotations['testarg2'], 'yes') self.assertEqual(self.rcg2.annotations['testarg2'], 'yes') self.assertTrue(self.rcg1.annotations['testarg3']) self.assertTrue(self.rcg2.annotations['testarg3']) self.assertTrue(hasattr(self.rcg1, 'units')) self.assertTrue(hasattr(self.rcg2, 'units')) self.assertEqual(len(self.rcg1.units), 2) self.assertEqual(len(self.rcg2.units), 3) self.assertEqual(self.rcg1.units, self.units1) self.assertEqual(self.rcg2.units, self.units2) self.assertTrue(hasattr(self.rcg1, 'recordingchannels')) self.assertTrue(hasattr(self.rcg2, 'recordingchannels')) self.assertEqual(len(self.rcg1.recordingchannels), 2) self.assertEqual(len(self.rcg2.recordingchannels), 3) for res, targ in zip(self.rcg1.recordingchannels, self.rchan1): self.assertEqual(res.name, targ.name) for res, targ in zip(self.rcg2.recordingchannels, self.rchan2): self.assertEqual(res.name, targ.name) self.assertTrue(hasattr(self.rcg1, 'analogsignalarrays')) self.assertTrue(hasattr(self.rcg2, 'analogsignalarrays')) self.assertEqual(len(self.rcg1.analogsignalarrays), 2) self.assertEqual(len(self.rcg2.analogsignalarrays), 3) for res, targ in zip(self.rcg1.analogsignalarrays, self.sigarr1): assert_arrays_equal(res, targ) self.assertEqual(res.name, targ.name) for res, targ in zip(self.rcg2.analogsignalarrays, self.sigarr2): assert_arrays_equal(res, targ) self.assertEqual(res.name, targ.name) def test_recordingchannelgroup__merge(self): self.rcg1.merge(self.rcg2) chanres1 = [chan.name for chan in self.rcg1.recordingchannels] chanres2 = [chan.name for chan in self.rcg2.recordingchannels] unitres1 = [unit.name for unit in self.rcg1.units] unitres2 = [unit.name for unit in self.rcg2.units] sigarrres1 = [sigarr.name for sigarr in self.rcg1.analogsignalarrays] sigarrres2 = [sigarr.name for sigarr in self.rcg2.analogsignalarrays] self.assertEqual(chanres1, self.rchannames) self.assertEqual(chanres2, self.rchannames2) self.assertEqual(unitres1, self.unitnames) self.assertEqual(unitres2, self.unitnames2) self.assertEqual(sigarrres1, self.sigarrnames) self.assertEqual(sigarrres2, self.sigarrnames2) for res, targ in zip(self.rcg1.analogsignalarrays, self.sigarr): assert_arrays_equal(res, targ) for res, targ in zip(self.rcg2.analogsignalarrays, self.sigarr2): assert_arrays_equal(res, targ) def test__children(self): blk = Block(name='block1') blk.recordingchannelgroups = [self.rcg1] blk.create_many_to_one_relationship() self.assertEqual(self.rcg1._container_child_objects, ('Unit', )) self.assertEqual(self.rcg1._data_child_objects, ('AnalogSignalArray', )) self.assertEqual(self.rcg1._single_parent_objects, ('Block', )) self.assertEqual(self.rcg1._multi_child_objects, ('RecordingChannel', )) self.assertEqual(self.rcg1._multi_parent_objects, ()) self.assertEqual(self.rcg1._child_properties, ()) self.assertEqual(self.rcg1._single_child_objects, ( 'Unit', 'AnalogSignalArray', )) self.assertEqual(self.rcg1._container_child_containers, ('units', )) self.assertEqual(self.rcg1._data_child_containers, ('analogsignalarrays', )) self.assertEqual(self.rcg1._single_child_containers, ('units', 'analogsignalarrays')) self.assertEqual(self.rcg1._single_parent_containers, ('block', )) self.assertEqual(self.rcg1._multi_child_containers, ('recordingchannels', )) self.assertEqual(self.rcg1._multi_parent_containers, ()) self.assertEqual(self.rcg1._child_objects, ('Unit', 'AnalogSignalArray', 'RecordingChannel')) self.assertEqual(self.rcg1._child_containers, ('units', 'analogsignalarrays', 'recordingchannels')) self.assertEqual(self.rcg1._parent_objects, ('Block', )) self.assertEqual(self.rcg1._parent_containers, ('block', )) self.assertEqual( len(self.rcg1.children), (len(self.units1) + len(self.rchan1) + len(self.sigarr1))) self.assertEqual(self.rcg1.children[0].name, self.unitnames1[0]) self.assertEqual(self.rcg1.children[1].name, self.unitnames1[1]) self.assertEqual(self.rcg1.children[2].name, self.sigarrnames1[0]) self.assertEqual(self.rcg1.children[3].name, self.sigarrnames1[1]) self.assertEqual(self.rcg1.children[4].name, self.rchannames1[0]) self.assertEqual(self.rcg1.children[5].name, self.rchannames1[1]) self.assertEqual(len(self.rcg1.parents), 1) self.assertEqual(self.rcg1.parents[0].name, 'block1') self.rcg1.create_many_to_one_relationship() self.rcg1.create_many_to_many_relationship() self.rcg1.create_relationship() assert_neo_object_is_compliant(self.rcg1)
class TestRecordingChannelGroup(unittest.TestCase): def setUp(self): self.setup_unit() self.setup_analogsignalarrays() self.setup_recordingchannels() self.setup_recordingchannelgroups() def setup_recordingchannelgroups(self): params = {'testarg2': 'yes', 'testarg3': True} self.rcg1 = RecordingChannelGroup(name='test', description='tester 1', file_origin='test.file', testarg1=1, **params) self.rcg2 = RecordingChannelGroup(name='test', description='tester 2', file_origin='test.file', testarg1=1, **params) self.rcg1.annotate(testarg1=1.1, testarg0=[1, 2, 3]) self.rcg2.annotate(testarg11=1.1, testarg10=[1, 2, 3]) self.rcg1.units = self.units1 self.rcg2.units = self.units2 self.rcg1.recordingchannels = self.rchan1 self.rcg2.recordingchannels = self.rchan2 self.rcg1.analogsignalarrays = self.sigarr1 self.rcg2.analogsignalarrays = self.sigarr2 self.rcg1.create_many_to_one_relationship() self.rcg2.create_many_to_one_relationship() def setup_unit(self): unitname11 = 'unit 1 1' unitname12 = 'unit 1 2' unitname21 = 'unit 2 1' unitname22 = 'unit 2 2' self.unitnames1 = [unitname11, unitname12] self.unitnames2 = [unitname21, unitname22, unitname11] self.unitnames = [unitname11, unitname12, unitname21, unitname22] unit11 = Unit(name=unitname11, channel_indexes=np.array([1])) unit12 = Unit(name=unitname12, channel_indexes=np.array([2])) unit21 = Unit(name=unitname21, channel_indexes=np.array([1])) unit22 = Unit(name=unitname22, channel_indexes=np.array([2])) unit23 = Unit(name=unitname11, channel_indexes=np.array([1])) self.units1 = [unit11, unit12] self.units2 = [unit21, unit22, unit23] self.units = [unit11, unit12, unit21, unit22] def setup_recordingchannels(self): rchanname11 = 'chan 1 1' rchanname12 = 'chan 1 2' rchanname21 = 'chan 2 1' rchanname22 = 'chan 2 2' self.rchannames1 = [rchanname11, rchanname12] self.rchannames2 = [rchanname21, rchanname22, rchanname11] self.rchannames = [rchanname11, rchanname12, rchanname21, rchanname22] rchan11 = RecordingChannel(name=rchanname11) rchan12 = RecordingChannel(name=rchanname12) rchan21 = RecordingChannel(name=rchanname21) rchan22 = RecordingChannel(name=rchanname22) rchan23 = RecordingChannel(name=rchanname11) self.rchan1 = [rchan11, rchan12] self.rchan2 = [rchan21, rchan22, rchan23] self.rchan = [rchan11, rchan12, rchan21, rchan22] def setup_analogsignalarrays(self): sigarrname11 = 'analogsignalarray 1 1' sigarrname12 = 'analogsignalarray 1 2' sigarrname21 = 'analogsignalarray 2 1' sigarrname22 = 'analogsignalarray 2 2' sigarrdata11 = np.arange(0, 10).reshape(5, 2) * pq.mV sigarrdata12 = np.arange(10, 20).reshape(5, 2) * pq.mV sigarrdata21 = np.arange(20, 30).reshape(5, 2) * pq.V sigarrdata22 = np.arange(30, 40).reshape(5, 2) * pq.V sigarrdata112 = np.hstack([sigarrdata11, sigarrdata11]) * pq.mV self.sigarrnames1 = [sigarrname11, sigarrname12] self.sigarrnames2 = [sigarrname21, sigarrname22, sigarrname11] self.sigarrnames = [sigarrname11, sigarrname12, sigarrname21, sigarrname22] sigarr11 = AnalogSignalArray(sigarrdata11, name=sigarrname11, sampling_rate=1*pq.Hz, channel_index=np.array([1])) sigarr12 = AnalogSignalArray(sigarrdata12, name=sigarrname12, sampling_rate=1*pq.Hz, channel_index=np.array([2])) sigarr21 = AnalogSignalArray(sigarrdata21, name=sigarrname21, sampling_rate=1*pq.Hz, channel_index=np.array([1])) sigarr22 = AnalogSignalArray(sigarrdata22, name=sigarrname22, sampling_rate=1*pq.Hz, channel_index=np.array([2])) sigarr23 = AnalogSignalArray(sigarrdata11, name=sigarrname11, sampling_rate=1*pq.Hz, channel_index=np.array([1])) sigarr112 = AnalogSignalArray(sigarrdata112, name=sigarrname11, sampling_rate=1*pq.Hz, channel_index=np.array([1])) self.sigarr1 = [sigarr11, sigarr12] self.sigarr2 = [sigarr21, sigarr22, sigarr23] self.sigarr = [sigarr112, sigarr12, sigarr21, sigarr22] def test__recordingchannelgroup__init_defaults(self): rcg = RecordingChannelGroup() assert_neo_object_is_compliant(rcg) self.assertEqual(rcg.name, None) self.assertEqual(rcg.file_origin, None) self.assertEqual(rcg.recordingchannels, []) self.assertEqual(rcg.analogsignalarrays, []) assert_arrays_equal(rcg.channel_names, np.array([], dtype='S')) assert_arrays_equal(rcg.channel_indexes, np.array([])) def test_recordingchannelgroup__init(self): rcg = RecordingChannelGroup(file_origin='temp.dat', channel_indexes=np.array([1])) assert_neo_object_is_compliant(rcg) self.assertEqual(rcg.file_origin, 'temp.dat') self.assertEqual(rcg.name, None) self.assertEqual(rcg.recordingchannels, []) self.assertEqual(rcg.analogsignalarrays, []) assert_arrays_equal(rcg.channel_names, np.array([], dtype='S')) assert_arrays_equal(rcg.channel_indexes, np.array([1])) def test_recordingchannelgroup__compliance(self): assert_neo_object_is_compliant(self.rcg1) assert_neo_object_is_compliant(self.rcg2) self.assertEqual(self.rcg1.name, 'test') self.assertEqual(self.rcg2.name, 'test') self.assertEqual(self.rcg1.description, 'tester 1') self.assertEqual(self.rcg2.description, 'tester 2') self.assertEqual(self.rcg1.file_origin, 'test.file') self.assertEqual(self.rcg2.file_origin, 'test.file') self.assertEqual(self.rcg1.annotations['testarg0'], [1, 2, 3]) self.assertEqual(self.rcg2.annotations['testarg10'], [1, 2, 3]) self.assertEqual(self.rcg1.annotations['testarg1'], 1.1) self.assertEqual(self.rcg2.annotations['testarg1'], 1) self.assertEqual(self.rcg2.annotations['testarg11'], 1.1) self.assertEqual(self.rcg1.annotations['testarg2'], 'yes') self.assertEqual(self.rcg2.annotations['testarg2'], 'yes') self.assertTrue(self.rcg1.annotations['testarg3']) self.assertTrue(self.rcg2.annotations['testarg3']) self.assertTrue(hasattr(self.rcg1, 'units')) self.assertTrue(hasattr(self.rcg2, 'units')) self.assertEqual(len(self.rcg1.units), 2) self.assertEqual(len(self.rcg2.units), 3) self.assertEqual(self.rcg1.units, self.units1) self.assertEqual(self.rcg2.units, self.units2) self.assertTrue(hasattr(self.rcg1, 'recordingchannels')) self.assertTrue(hasattr(self.rcg2, 'recordingchannels')) self.assertEqual(len(self.rcg1.recordingchannels), 2) self.assertEqual(len(self.rcg2.recordingchannels), 3) for res, targ in zip(self.rcg1.recordingchannels, self.rchan1): self.assertEqual(res.name, targ.name) for res, targ in zip(self.rcg2.recordingchannels, self.rchan2): self.assertEqual(res.name, targ.name) self.assertTrue(hasattr(self.rcg1, 'analogsignalarrays')) self.assertTrue(hasattr(self.rcg2, 'analogsignalarrays')) self.assertEqual(len(self.rcg1.analogsignalarrays), 2) self.assertEqual(len(self.rcg2.analogsignalarrays), 3) for res, targ in zip(self.rcg1.analogsignalarrays, self.sigarr1): assert_arrays_equal(res, targ) self.assertEqual(res.name, targ.name) for res, targ in zip(self.rcg2.analogsignalarrays, self.sigarr2): assert_arrays_equal(res, targ) self.assertEqual(res.name, targ.name) def test_recordingchannelgroup__merge(self): self.rcg1.merge(self.rcg2) chanres1 = [chan.name for chan in self.rcg1.recordingchannels] chanres2 = [chan.name for chan in self.rcg2.recordingchannels] unitres1 = [unit.name for unit in self.rcg1.units] unitres2 = [unit.name for unit in self.rcg2.units] sigarrres1 = [sigarr.name for sigarr in self.rcg1.analogsignalarrays] sigarrres2 = [sigarr.name for sigarr in self.rcg2.analogsignalarrays] self.assertEqual(chanres1, self.rchannames) self.assertEqual(chanres2, self.rchannames2) self.assertEqual(unitres1, self.unitnames) self.assertEqual(unitres2, self.unitnames2) self.assertEqual(sigarrres1, self.sigarrnames) self.assertEqual(sigarrres2, self.sigarrnames2) for res, targ in zip(self.rcg1.analogsignalarrays, self.sigarr): assert_arrays_equal(res, targ) for res, targ in zip(self.rcg2.analogsignalarrays, self.sigarr2): assert_arrays_equal(res, targ) def test__children(self): blk = Block(name='block1') blk.recordingchannelgroups = [self.rcg1] blk.create_many_to_one_relationship() self.assertEqual(self.rcg1._container_child_objects, ('Unit',)) self.assertEqual(self.rcg1._data_child_objects, ('AnalogSignalArray',)) self.assertEqual(self.rcg1._single_parent_objects, ('Block',)) self.assertEqual(self.rcg1._multi_child_objects, ('RecordingChannel',)) self.assertEqual(self.rcg1._multi_parent_objects, ()) self.assertEqual(self.rcg1._child_properties, ()) self.assertEqual(self.rcg1._single_child_objects, ('Unit', 'AnalogSignalArray',)) self.assertEqual(self.rcg1._container_child_containers, ('units',)) self.assertEqual(self.rcg1._data_child_containers, ('analogsignalarrays',)) self.assertEqual(self.rcg1._single_child_containers, ('units', 'analogsignalarrays')) self.assertEqual(self.rcg1._single_parent_containers, ('block',)) self.assertEqual(self.rcg1._multi_child_containers, ('recordingchannels',)) self.assertEqual(self.rcg1._multi_parent_containers, ()) self.assertEqual(self.rcg1._child_objects, ('Unit', 'AnalogSignalArray', 'RecordingChannel')) self.assertEqual(self.rcg1._child_containers, ('units', 'analogsignalarrays', 'recordingchannels')) self.assertEqual(self.rcg1._parent_objects, ('Block',)) self.assertEqual(self.rcg1._parent_containers, ('block',)) self.assertEqual(len(self.rcg1.children), (len(self.units1) + len(self.rchan1) + len(self.sigarr1))) self.assertEqual(self.rcg1.children[0].name, self.unitnames1[0]) self.assertEqual(self.rcg1.children[1].name, self.unitnames1[1]) self.assertEqual(self.rcg1.children[2].name, self.sigarrnames1[0]) self.assertEqual(self.rcg1.children[3].name, self.sigarrnames1[1]) self.assertEqual(self.rcg1.children[4].name, self.rchannames1[0]) self.assertEqual(self.rcg1.children[5].name, self.rchannames1[1]) self.assertEqual(len(self.rcg1.parents), 1) self.assertEqual(self.rcg1.parents[0].name, 'block1') self.rcg1.create_many_to_one_relationship() self.rcg1.create_many_to_many_relationship() self.rcg1.create_relationship() assert_neo_object_is_compliant(self.rcg1)