_group_kids

        Low-level api: Consider an Element node in a Config instance. Now
        we have two Config instances and we want to compare two corresponding
        Element nodes. This method group children of these nodes in three
        categories: some only exist in node_one, some only exist in node_two,
        and some chiildren of node_one have peers in node_two.

        Parameters
        ----------

        node_one : `Element`
            An Element node in one Config instance.

        node_two : `Element`
            An Element node in the other Config instance.

        Returns
        -------

        tuple
            There are three elements in the tuple. The first element is a list
            of children of node_one that do not have any peers in node_two. The
            second element is a list of children of node_two that do not have
            any peers in node_one. The last element is a list of tuples, and
            each tuple represents a pair of peers.

def _group_kids(self, node_one, node_two):
        '''_group_kids

        Low-level api: Consider an Element node in a Config instance. Now
        we have two Config instances and we want to compare two corresponding
        Element nodes. This method group children of these nodes in three
        categories: some only exist in node_one, some only exist in node_two,
        and some chiildren of node_one have peers in node_two.

        Parameters
        ----------

        node_one : `Element`
            An Element node in one Config instance.

        node_two : `Element`
            An Element node in the other Config instance.

        Returns
        -------

        tuple
            There are three elements in the tuple. The first element is a list
            of children of node_one that do not have any peers in node_two. The
            second element is a list of children of node_two that do not have
            any peers in node_one. The last element is a list of tuples, and
            each tuple represents a pair of peers.
        '''

        in_1_not_in_2 = []
        in_2_not_in_1 = []
        in_1_and_in_2 = []
        for child in node_one.getchildren():
            peers = self._get_peers(child, node_two)
            if len(peers) < 1:
                # child in self but not in other
                in_1_not_in_2.append(child)
            elif len(peers) > 1:
                # one child in self matches multiple children in other
                raise ConfigError('not unique peer of node {}' \
                                  .format(self.device.get_xpath(child)))
            else:
                # child matches one peer in other
                in_1_and_in_2.append((child, peers[0]))
        for child in node_two.getchildren():
            peers = self._get_peers(child, node_one)
            if len(peers) < 1:
                # child in other but not in self
                in_2_not_in_1.append(child)
            elif len(peers) > 1:
                # one child in other matches multiple children in self
                raise ConfigError('not unique peer of node {}' \
                                  .format(self.device.get_xpath(child)))
            else:
                # child in self matches one peer in self
                pass
        return (in_1_not_in_2, in_2_not_in_1, in_1_and_in_2)