code: def test_rouge_metric_normalizer_tokenizer(pl_rouge_metric_key):
      """Test that rouge metric works for different rouge levels."""
      normalizer: Callable[[str], str] = lambda text: re.sub(
          r"[^a-z0-9]+", " ", text.lower()
      )
      tokenizer: Callable[[str], Sequence[str]] = lambda text: re.split(
          r"\s+", text
      )
  
      rouge_level, metric = pl_rouge_metric_key.split("_")
      original_score = _compute_rouge_score(
          preds=_inputs_single_sentence_single_reference.preds,
          target=_inputs_single_sentence_single_reference.target,
          rouge_level=rouge_level,
          metric=metric,
          accumulate="best",
          use_stemmer=False,
      )
  
      scorer = ROUGEScore(
          normalizer=normalizer,
          tokenizer=tokenizer,
          rouge_keys=rouge_level,
          accumulate="best",
          use_stemmer=False,
      )
      scorer.update(
          _inputs_single_sentence_single_reference.preds,
          _inputs_single_sentence_single_reference.target,
      )
      metrics_score = scorer.compute()
  
      assert torch.isclose(
          metrics_score[rouge_level + "_" + metric], original_score
      )
  
imports: import re
  from functools import partial
  from typing import Callable, Sequence, Union
  import pytest
  import torch
  from torch import Tensor
  from torchmetrics.functional.text.rouge import rouge_score
  from torchmetrics.text.rouge import ROUGEScore
  from torchmetrics.utilities.imports import _NLTK_AVAILABLE, _ROUGE_SCORE_AVAILABLE
  from typing_extensions import Literal
  from unittests.text.helpers import TextTester, skip_on_connection_issues
  from unittests.text.inputs import _Input, _inputs_multiple_references, _inputs_single_sentence_single_reference
label_desc: Use image node_id 4 for calling a global function with example usage: test_rouge_metric_normalizer_tokenizer(pl_rouge_metric_key) without return types