code: def test_provide_removes_or_replaces_expected_information(
      default_model_storage: ModelStorage,
      default_execution_context: ExecutionContext,
      input_domain: Union[Text, Dict],
  ):
      # prepare input
      if isinstance(input_domain, str):
          original_domain = Domain.from_file(path=input_domain)
      else:
          original_domain = Domain.from_dict(input_domain)
  
      # pass through component
      component = DomainForCoreTrainingProvider.create(
          {"arbitrary-unused": 234},
          default_model_storage,
          Resource("xy"),
          default_execution_context,
      )
      modified_domain = component.provide(domain=original_domain)
  
      # convert to dict for comparison
      modified_dict = modified_domain.as_dict()
      original_dict = original_domain.as_dict()
      default_dict = Domain.empty().as_dict()
  
      assert sorted(original_dict.keys()) == sorted(
          modified_dict.keys()
      )
      for key in original_dict.keys():
          # replaced with default values
          if key in ["config", SESSION_CONFIG_KEY]:
              assert modified_dict[key] == default_dict[key]
  
          # for responses, we only keep the keys
          elif key == KEY_RESPONSES:
              assert set(modified_dict[key].keys()) == set(
                  original_dict[key].keys()
              )
              for sub_key in original_dict[key]:
                  assert modified_dict[key][sub_key] == []
  
          # for forms, we only keep the keys (and the Domain will add a default key)
          elif key == KEY_FORMS:
              assert set(modified_dict[key].keys()) == set(
                  original_dict[key].keys()
              )
              for sub_key in original_dict[key]:
                  assert set(modified_dict[key][sub_key].keys()) == {
                      REQUIRED_SLOTS_KEY
                  }
                  assert (
                      modified_dict[key][sub_key][REQUIRED_SLOTS_KEY]
                      == []
                  )
  
          # everything else remains unchanged
          else:
              assert original_dict[key] == modified_dict[key]
  
file_path: rasa/tests/graph_components/providers/test_domain_for_core_training_provider.py
imports: from typing import Text, Union, Dict
  import pytest
  from pathlib import Path
  from _pytest.tmpdir import TempPathFactory
  from rasa import model_training
  from rasa.engine.graph import ExecutionContext
  from rasa.engine.storage.resource import Resource
  from rasa.engine.storage.storage import ModelStorage
  from rasa.shared.core.domain import KEY_RESPONSES, Domain, SESSION_CONFIG_KEY, KEY_FORMS, SESSION_EXPIRATION_TIME_KEY, CARRY_OVER_SLOTS_KEY
  from rasa.graph_components.providers.domain_for_core_training_provider import DomainForCoreTrainingProvider
  from rasa.shared.constants import REQUIRED_SLOTS_KEY
label_desc: Use image node_id 1 for calling a global function with example usage: test_provide_removes_or_replaces_expected_information(default_model_storage, default_execution_context, input_domain) without return types