'Returns two values:
1. The active children of this split test, in the order of the groups.
2. The remaining (inactive) children, in the order they were added to the split test.'

def active_and_inactive_children(self):

    children = self.get_children()
    user_partition = self.get_selected_partition()
    if (not user_partition):
        return ([], children)
    def get_child_descriptor(location):
        '\n                                                Returns    the    child    descriptor    which    matches    the    specified    location,    or    None    if    one    is    not    found.\n                                                '
        for child in children:
            if (child.location == location):
                return child
        return None
    active_children = []
    for group in user_partition.groups:
        group_id = unicode(group.id)
        child_location = self.group_id_to_child.get(group_id, None)
        child = get_child_descriptor(child_location)
        if child:
            active_children.append(child)
    inactive_children = [child for child in children if (child not in active_children)]
    return (active_children, inactive_children)
