def test__children(self):
        rcg = RecordingChannelGroup(name='rcg1')
        rcg.recordingchannels = [self.rchan1]
        rcg.create_many_to_many_relationship()

        self.assertEqual(self.rchan1._container_child_objects, ())
        self.assertEqual(self.rchan1._data_child_objects,
                         ('AnalogSignal', 'IrregularlySampledSignal'))
        self.assertEqual(self.rchan1._single_parent_objects, ())
        self.assertEqual(self.rchan1._multi_child_objects, ())
        self.assertEqual(self.rchan1._multi_parent_objects,
                         ('RecordingChannelGroup', ))
        self.assertEqual(self.rchan1._child_properties, ())

        self.assertEqual(self.rchan1._single_child_objects,
                         ('AnalogSignal', 'IrregularlySampledSignal'))

        self.assertEqual(self.rchan1._container_child_containers, ())
        self.assertEqual(self.rchan1._data_child_containers, (
            'analogsignals',
            'irregularlysampledsignals',
        ))
        self.assertEqual(self.rchan1._single_child_containers, (
            'analogsignals',
            'irregularlysampledsignals',
        ))
        self.assertEqual(self.rchan1._single_parent_containers, ())
        self.assertEqual(self.rchan1._multi_child_containers, ())
        self.assertEqual(self.rchan1._multi_parent_containers,
                         ('recordingchannelgroups', ))

        self.assertEqual(self.rchan1._child_objects,
                         ('AnalogSignal', 'IrregularlySampledSignal'))
        self.assertEqual(self.rchan1._child_containers, (
            'analogsignals',
            'irregularlysampledsignals',
        ))
        self.assertEqual(self.rchan1._parent_objects,
                         ('RecordingChannelGroup', ))
        self.assertEqual(self.rchan1._parent_containers,
                         ('recordingchannelgroups', ))

        self.assertEqual(len(self.rchan1.children),
                         len(self.sig1) + len(self.irsig1))
        self.assertEqual(self.rchan1.children[0].name, self.signames1[0])
        self.assertEqual(self.rchan1.children[1].name, self.signames1[1])
        self.assertEqual(self.rchan1.children[2].name, self.irsignames1[0])
        self.assertEqual(self.rchan1.children[3].name, self.irsignames1[1])
        self.assertEqual(len(self.rchan1.parents), 1)
        self.assertEqual(self.rchan1.parents[0].name, 'rcg1')

        self.rchan1.create_many_to_one_relationship()
        self.rchan1.create_many_to_many_relationship()
        self.rchan1.create_relationship()
        assert_neo_object_is_compliant(self.rchan1)
    def test__children(self):
        rcg = RecordingChannelGroup(name='rcg1')
        rcg.recordingchannels = [self.rchan1]
        rcg.create_many_to_many_relationship()

        self.assertEqual(self.rchan1._container_child_objects, ())
        self.assertEqual(self.rchan1._data_child_objects,
                         ('AnalogSignal', 'IrregularlySampledSignal'))
        self.assertEqual(self.rchan1._single_parent_objects, ())
        self.assertEqual(self.rchan1._multi_child_objects, ())
        self.assertEqual(self.rchan1._multi_parent_objects,
                         ('RecordingChannelGroup',))
        self.assertEqual(self.rchan1._child_properties, ())

        self.assertEqual(self.rchan1._single_child_objects,
                         ('AnalogSignal', 'IrregularlySampledSignal'))

        self.assertEqual(self.rchan1._container_child_containers, ())
        self.assertEqual(self.rchan1._data_child_containers,
                         ('analogsignals', 'irregularlysampledsignals',))
        self.assertEqual(self.rchan1._single_child_containers,
                         ('analogsignals', 'irregularlysampledsignals',))
        self.assertEqual(self.rchan1._single_parent_containers, ())
        self.assertEqual(self.rchan1._multi_child_containers, ())
        self.assertEqual(self.rchan1._multi_parent_containers,
                         ('recordingchannelgroups',))

        self.assertEqual(self.rchan1._child_objects,
                         ('AnalogSignal', 'IrregularlySampledSignal'))
        self.assertEqual(self.rchan1._child_containers,
                         ('analogsignals', 'irregularlysampledsignals',))
        self.assertEqual(self.rchan1._parent_objects,
                         ('RecordingChannelGroup',))
        self.assertEqual(self.rchan1._parent_containers,
                         ('recordingchannelgroups',))

        self.assertEqual(len(self.rchan1.children),
                         len(self.sig1) + len(self.irsig1))
        self.assertEqual(self.rchan1.children[0].name, self.signames1[0])
        self.assertEqual(self.rchan1.children[1].name, self.signames1[1])
        self.assertEqual(self.rchan1.children[2].name, self.irsignames1[0])
        self.assertEqual(self.rchan1.children[3].name, self.irsignames1[1])
        self.assertEqual(len(self.rchan1.parents), 1)
        self.assertEqual(self.rchan1.parents[0].name, 'rcg1')

        self.rchan1.create_many_to_one_relationship()
        self.rchan1.create_many_to_many_relationship()
        self.rchan1.create_relationship()
        assert_neo_object_is_compliant(self.rchan1)
    def test__children(self):
        rcg1 = RecordingChannelGroup(name='rcg1')
        rcg2 = RecordingChannelGroup(name='rcg2')
        rcg1.recordingchannels = [self.rchan1]
        rcg2.recordingchannels = [self.rchan1]
        rcg2.create_relationship()
        rcg1.create_relationship()
        assert_neo_object_is_compliant(self.rchan1)
        assert_neo_object_is_compliant(rcg1)
        assert_neo_object_is_compliant(rcg2)

        self.assertEqual(self.rchan1._container_child_objects, ())
        self.assertEqual(self.rchan1._data_child_objects,
                         ('AnalogSignal', 'IrregularlySampledSignal'))
        self.assertEqual(self.rchan1._single_parent_objects, ())
        self.assertEqual(self.rchan1._multi_child_objects, ())
        self.assertEqual(self.rchan1._multi_parent_objects,
                         ('RecordingChannelGroup', ))
        self.assertEqual(self.rchan1._child_properties, ())

        self.assertEqual(self.rchan1._single_child_objects,
                         ('AnalogSignal', 'IrregularlySampledSignal'))

        self.assertEqual(self.rchan1._container_child_containers, ())
        self.assertEqual(self.rchan1._data_child_containers, (
            'analogsignals',
            'irregularlysampledsignals',
        ))
        self.assertEqual(self.rchan1._single_child_containers, (
            'analogsignals',
            'irregularlysampledsignals',
        ))
        self.assertEqual(self.rchan1._single_parent_containers, ())
        self.assertEqual(self.rchan1._multi_child_containers, ())
        self.assertEqual(self.rchan1._multi_parent_containers,
                         ('recordingchannelgroups', ))

        self.assertEqual(self.rchan1._child_objects,
                         ('AnalogSignal', 'IrregularlySampledSignal'))
        self.assertEqual(self.rchan1._child_containers, (
            'analogsignals',
            'irregularlysampledsignals',
        ))
        self.assertEqual(self.rchan1._parent_objects,
                         ('RecordingChannelGroup', ))
        self.assertEqual(self.rchan1._parent_containers,
                         ('recordingchannelgroups', ))

        self.assertEqual(len(self.rchan1._single_children), self.nchildren * 2)
        self.assertEqual(len(self.rchan1._multi_children), 0)
        self.assertEqual(len(self.rchan1.data_children), self.nchildren * 2)
        self.assertEqual(len(self.rchan1.data_children_recur),
                         self.nchildren * 2)
        self.assertEqual(len(self.rchan1.container_children), 0)
        self.assertEqual(len(self.rchan1.container_children_recur), 0)
        self.assertEqual(len(self.rchan1.children), self.nchildren * 2)
        self.assertEqual(len(self.rchan1.children_recur), self.nchildren * 2)

        self.assertEqual(self.rchan1._multi_children, ())
        self.assertEqual(self.rchan1.container_children, ())
        self.assertEqual(self.rchan1.container_children_recur, ())

        assert_same_sub_schema(list(self.rchan1._single_children),
                               self.sigs1a + self.irsigs1a)

        assert_same_sub_schema(list(self.rchan1.data_children),
                               self.sigs1a + self.irsigs1a)

        assert_same_sub_schema(list(self.rchan1.data_children_recur),
                               self.sigs1a + self.irsigs1a)

        assert_same_sub_schema(list(self.rchan1.children),
                               self.sigs1a + self.irsigs1a)

        assert_same_sub_schema(list(self.rchan1.children_recur),
                               self.sigs1a + self.irsigs1a)

        self.assertEqual(len(self.rchan1.parents), 2)
        self.assertEqual(self.rchan1.parents[0].name, 'rcg2')
        self.assertEqual(self.rchan1.parents[1].name, 'rcg1')
    def test__children(self):
        rcg1 = RecordingChannelGroup(name='rcg1')
        rcg2 = RecordingChannelGroup(name='rcg2')
        rcg1.recordingchannels = [self.rchan1]
        rcg2.recordingchannels = [self.rchan1]
        rcg2.create_relationship()
        rcg1.create_relationship()
        assert_neo_object_is_compliant(self.rchan1)
        assert_neo_object_is_compliant(rcg1)
        assert_neo_object_is_compliant(rcg2)

        self.assertEqual(self.rchan1._container_child_objects, ())
        self.assertEqual(self.rchan1._data_child_objects,
                         ('AnalogSignal', 'IrregularlySampledSignal'))
        self.assertEqual(self.rchan1._single_parent_objects, ())
        self.assertEqual(self.rchan1._multi_child_objects, ())
        self.assertEqual(self.rchan1._multi_parent_objects,
                         ('RecordingChannelGroup',))
        self.assertEqual(self.rchan1._child_properties, ())

        self.assertEqual(self.rchan1._single_child_objects,
                         ('AnalogSignal', 'IrregularlySampledSignal'))

        self.assertEqual(self.rchan1._container_child_containers, ())
        self.assertEqual(self.rchan1._data_child_containers,
                         ('analogsignals', 'irregularlysampledsignals',))
        self.assertEqual(self.rchan1._single_child_containers,
                         ('analogsignals', 'irregularlysampledsignals',))
        self.assertEqual(self.rchan1._single_parent_containers, ())
        self.assertEqual(self.rchan1._multi_child_containers, ())
        self.assertEqual(self.rchan1._multi_parent_containers,
                         ('recordingchannelgroups',))

        self.assertEqual(self.rchan1._child_objects,
                         ('AnalogSignal', 'IrregularlySampledSignal'))
        self.assertEqual(self.rchan1._child_containers,
                         ('analogsignals', 'irregularlysampledsignals',))
        self.assertEqual(self.rchan1._parent_objects,
                         ('RecordingChannelGroup',))
        self.assertEqual(self.rchan1._parent_containers,
                         ('recordingchannelgroups',))

        self.assertEqual(len(self.rchan1._single_children), self.nchildren*2)
        self.assertEqual(len(self.rchan1._multi_children), 0)
        self.assertEqual(len(self.rchan1.data_children), self.nchildren*2)
        self.assertEqual(len(self.rchan1.data_children_recur),
                         self.nchildren*2)
        self.assertEqual(len(self.rchan1.container_children), 0)
        self.assertEqual(len(self.rchan1.container_children_recur), 0)
        self.assertEqual(len(self.rchan1.children), self.nchildren*2)
        self.assertEqual(len(self.rchan1.children_recur), self.nchildren*2)

        self.assertEqual(self.rchan1._multi_children, ())
        self.assertEqual(self.rchan1.container_children, ())
        self.assertEqual(self.rchan1.container_children_recur, ())

        assert_same_sub_schema(list(self.rchan1._single_children),
                               self.sigs1a+self.irsigs1a)

        assert_same_sub_schema(list(self.rchan1.data_children),
                               self.sigs1a+self.irsigs1a)

        assert_same_sub_schema(list(self.rchan1.data_children_recur),
                               self.sigs1a+self.irsigs1a)

        assert_same_sub_schema(list(self.rchan1.children),
                               self.sigs1a+self.irsigs1a)

        assert_same_sub_schema(list(self.rchan1.children_recur),
                               self.sigs1a+self.irsigs1a)

        self.assertEqual(len(self.rchan1.parents), 2)
        self.assertEqual(self.rchan1.parents[0].name, 'rcg2')
        self.assertEqual(self.rchan1.parents[1].name, 'rcg1')