code: def test_process_tokenizer(
      text: Text,
      expected_tokens: List[Text],
      expected_indices: List[Tuple[int, int]],
  ):
      tk = create_whitespace_tokenizer()
  
      message = Message.build(text=text)
  
      tk.process([message])
  
      tokens = message.get(TOKENS_NAMES[TEXT])
  
      assert [t.text for t in tokens] == expected_tokens
      assert [t.start for t in tokens] == [
          i[0] for i in expected_indices
      ]
      assert [t.end for t in tokens] == [i[1] for i in expected_indices]
  
imports: from typing import Any, Dict, Optional, Tuple, Text, List
  import pytest
  from rasa.nlu.tokenizers.tokenizer import Token
  from rasa.nlu.constants import TOKENS_NAMES
  from rasa.shared.nlu.constants import TEXT, INTENT, RESPONSE, INTENT_RESPONSE_KEY, ACTION_TEXT, ACTION_NAME
  from rasa.shared.nlu.training_data.training_data import TrainingData
  from rasa.shared.nlu.training_data.message import Message
  from rasa.nlu.tokenizers.whitespace_tokenizer import WhitespaceTokenizer
label_desc: Use image node_id 6 for calling a global function with example usage: test_process_tokenizer(text, expected_tokens, expected_indices) without return types