def report(sufficient_items, insufficient_items, condition, output = ".", prefix = None, **kwargs):
    """
        Report the symbols which did not pass the condition.

        Parameters:
            sufficient_items:   List of (name, object)-tuples that passed the condition
            insufficient_items: List of (name, object)-tuples that did not pass the condition
            condition:          Condition that was checked
            output:             Output directory
            kwargs:             Key-word arguments for underlying function calls (e.g. docov.analyze)
    """
    n_all = len(sufficient_items) + len(insufficient_items)

    if n_all == 0:
        raise RuntimeError("No items were analyzed!")

    text = "Found insufficient " + condition.target + " for the following items:\n"

    names = [name for name, _ in insufficient_items]

    for name in sorted(names):
        text += "  -- " + name + "\n"

    coverage = int(1000 * round(len(sufficient_items) / n_all, 3)) / 10.

    text += "Found " + str(n_all) + " items of which " + str(len(sufficient_items)) + " have suffcient "
    text += condition.target + ".\n"
    text += "Coverage: " + str(coverage) + condition.unit + "\n"

    prefix = prefix + "_" if prefix is not None else ""

    return output + "/" + prefix + condition.name + ".txt", text

    #with open(output + "/" + prefix + condition.name + ".txt", "w") as f:
    #    f.write(text)