def classification_test(object_list, ground_truth_source, prediction_source):
    """
    A method used to perform a classification test on grouped objects.
    Expects two sources, for ex. DUT and GT.

    Parameters
    ----------
    :param object_list:
    :param prediction_source:
    :param ground_truth_source:
    """
    sources = set(map(lambda x: x['source'], object_list))
    num_matching_objects = len(object_list)
    if num_matching_objects == 1:
        if prediction_source in sources:
            return 'false_positive'
        elif ground_truth_source in sources:
            return 'false_negative'
    if num_matching_objects == 2:
        if prediction_source in sources and ground_truth_source in sources:
            return 'true_positive'
        else:
            return 'bad_matching_output'
    if num_matching_objects >= 3:
        return 'bad_matching_output'
    return 'failed_classification_test'
