def METHOD_NAME():
    # Note: no "a" because it would get filtered out by normalize_text()
    metric = ClassificationMetric(delimiter=None)
    def _options(correct: str):
        return [_Option(text, text == correct) for text in ["d", "b", "c"]]
    request_states = [
        _request_state("d", _options("d")),
        _request_state("d", _options("d")),
        _request_state("d", _options("d")),
        _request_state("d", _options("b")),
        _request_state("b", _options("b")),
        _request_state("b", _options("b")),
        _request_state("b", _options("c")),
        _request_state("c", _options("d")),
        _request_state("c", _options("c")),
        _request_state("invalid", _options("c")),
    ]
    assert_stats_equal(
        metric.evaluate_instances(request_states),
        _expected_stats(
            {
                "d": {"tp": 3, "fp": 1, "tn": 5, "fn": 1},
                "b": {"tp": 2, "fp": 1, "tn": 6, "fn": 1},
                "c": {"tp": 1, "fp": 1, "tn": 6, "fn": 2},
            }
        ),
    )