import logging


def get_stats_of_rows(rows):
    """Calculcate number of true/false tasks and maximum achievable score."""
    count_true = count_false = max_score = 0
    for row in rows:
        if not row.properties:
            logging.info("Missing property for %s.", row.filename)
            continue
        if len(row.properties) > 1:
            # multiple properties not yet supported
            count_true = count_false = max_score = 0
            break
        expected_result = row.expected_results.get(row.properties[0].name)
        if not expected_result:
            continue
        if expected_result.result is True:
            count_true += 1
        elif expected_result.result is False:
            count_false += 1
        for prop in row.properties:
            max_score += prop.max_score(expected_result)

    return max_score, count_true, count_false