code: def test_process_warns_if_intent_or_entities_not_in_domain(
      intent: Text,
      entities: Optional[Text],
      expected_intent: Text,
      domain_entities: List[Text],
  ):
      # construct text according to pattern
      text = (
          INTENT_MESSAGE_PREFIX + intent
      )  # do not add a confidence value
      if entities is not None:
          text += json.dumps(entities)
      message = Message(data={TEXT: text})
  
      # construct domain from expected intent/entities
      domain = Domain(
          intents=[expected_intent],
          entities=domain_entities,
          slots=[],
          responses={},
          action_names=[],
          forms={},
          data={},
      )
  
      # expect a warning
      with pytest.warns(UserWarning):
          unpacked_message = YAMLStoryReader.unpack_regex_message(
              message, domain
          )
  
      if "wrong" not in intent:
          assert (
              unpacked_message.data[INTENT][INTENT_NAME_KEY] == intent
          )
          if "wrong" in entities:
              assert unpacked_message.data[ENTITIES] is not None
              assert len(unpacked_message.data[ENTITIES]) == 0
      else:
          assert unpacked_message == message
  
imports: import json
  import warnings
  import numpy
  import os
  import pytest
  import sys
  from collections import Counter
  from pathlib import Path
  from typing import Any, Text, List, Dict, Optional
  from _pytest.monkeypatch import MonkeyPatch
  from unittest.mock import Mock
  from rasa.shared.nlu.training_data.features import Features
  from rasa.shared.nlu.training_data.message import Message
  import rasa.shared.utils.io
  from rasa.shared.exceptions import FileNotFoundException, YamlSyntaxException, YamlException
  from rasa.core.actions.action import ACTION_LISTEN_NAME
  from rasa.core import training
  from rasa.core.featurizers.tracker_featurizers import MaxHistoryTrackerFeaturizer
  from rasa.core.featurizers.single_state_featurizer import SingleStateFeaturizer
  from rasa.utils.tensorflow.model_data_utils import _surface_attributes
  from rasa.shared.constants import INTENT_MESSAGE_PREFIX, LATEST_TRAINING_DATA_FORMAT_VERSION
  from rasa.shared.core.constants import RULE_SNIPPET_ACTION_NAME
  from rasa.shared.core.domain import Domain
  from rasa.shared.core.training_data import loading
  from rasa.shared.core.events import ActionExecuted, UserUttered, SlotSet, ActiveLoop
  from rasa.shared.core.training_data.story_reader.yaml_story_reader import YAMLStoryReader, DEFAULT_VALUE_TEXT_SLOTS
  from rasa.shared.core.training_data.structures import StoryStep, RuleStep
  from rasa.shared.nlu.constants import ACTION_NAME, ENTITIES, ENTITY_ATTRIBUTE_END, ENTITY_ATTRIBUTE_START, ENTITY_ATTRIBUTE_TYPE, ENTITY_ATTRIBUTE_VALUE, FEATURE_TYPE_SENTENCE, INTENT, INTENT_NAME_KEY, INTENT_RANKING_KEY, PREDICTED_CONFIDENCE_KEY, TEXT, EXTRACTOR
  from tests.conftest import filter_expected_warnings
label_desc: Use image node_id 38 for calling a global function with example usage: test_process_warns_if_intent_or_entities_not_in_domain(intent, entities, expected_intent, domain_entities) without return types