text: import os
  import tempfile
  from pathlib import Path
  
  import pytest
  import rasa.shared
  
  import rasa.shared.data
  from rasa.shared.nlu.training_data.loading import load_data
  from rasa.shared.utils.io import write_text_file, json_to_string
  from rasa.shared.core.training_data.story_reader.yaml_story_reader import (
      YAMLStoryReader,
  )
  
  
  @pytest.mark.parametrize(
      "path,is_yaml",
      [
          ("my_file.yaml", True),
          ("my_file.yml", True),
          ("/a/b/c/my_file.yml", True),
          ("/a/b/c/my_file.ml", False),
          ("my_file.json", False),
      ],
  )
  def test_is_yaml_file(path, is_yaml):
      assert rasa.shared.data.is_likely_yaml_file(path) == is_yaml
  
  
  @pytest.mark.parametrize(
      "path,is_json",
      [
          ("my_file.json", True),
          ("/a/b/c/my_file.json", True),
          ("/a/b/c/my_file.yml", False),
      ],
  )
  def test_is_json_file(path, is_json):
      assert rasa.shared.data.is_likely_json_file(path) == is_json
  
  
  def test_get_core_directory(project):
      data_dir = os.path.join(project, "data")
      core_directory = rasa.shared.data.get_core_directory([data_dir])
      core_files = os.listdir(core_directory)
  
      assert len(core_files) == 2
      assert any(file.endswith("stories.yml") for file in core_files)
      assert any(file.endswith("rules.yml") for file in core_files)
  
  
  def test_get_nlu_directory(project):
      data_dir = os.path.join(project, "data")
      nlu_directory = rasa.shared.data.get_nlu_directory([data_dir])
  
      nlu_files = os.listdir(nlu_directory)
  
      assert len(nlu_files) == 1
      assert nlu_files[0].endswith("nlu.yml")
  
  
  def test_get_nlu_file(project):
      data_file = os.path.join(project, "data/nlu.yml")
      nlu_directory = rasa.shared.data.get_nlu_directory(data_file)
  
      nlu_files = os.listdir(nlu_directory)
  
      original = load_data(data_file)
      copied = load_data(nlu_directory)
  
      assert nlu_files[0].endswith("nlu.yml")
      assert original.intent_examples == copied.intent_examples
  
  
  def test_get_core_nlu_files(project):
      data_dir = os.path.join(project, "data")
      nlu_files = rasa.shared.data.get_data_files(
          [data_dir], rasa.shared.data.is_nlu_file
      )
      core_files = rasa.shared.data.get_data_files(
          [data_dir], YAMLStoryReader.is_stories_file
      )
      assert len(nlu_files) == 1
      assert list(nlu_files)[0].endswith("nlu.yml")
  
      assert len(core_files) == 2
      assert any(file.endswith("stories.yml") for file in core_files)
      assert any(file.endswith("rules.yml") for file in core_files)
  
  
  @pytest.mark.parametrize(
      "test_input,expected",
      [
          (
              "dialogflow",
              [
                  "data/examples/dialogflow/agent.json",
                  "data/examples/dialogflow/entities/cuisine.json",
                  "data/examples/dialogflow/entities/cuisine_entries_en.json",
                  "data/examples/dialogflow/entities/cuisine_entries_es.json",
                  "data/examples/dialogflow/entities/flightNumber.json",
                  "data/examples/dialogflow/entities/flightNumber_entries_en.json",
                  "data/examples/dialogflow/entities/location.json",
                  "data/examples/dialogflow/entities/location_entries_en.json",
                  "data/examples/dialogflow/entities/location_entries_es.json",
                  "data/examples/dialogflow/intents/Default Fallback Intent.json",
                  "data/examples/dialogflow/intents/affirm.json",
                  "data/examples/dialogflow/intents/affirm_usersays_en.json",
                  "data/examples/dialogflow/intents/affirm_usersays_es.json",
                  "data/examples/dialogflow/intents/goodbye.json",
                  "data/examples/dialogflow/intents/goodbye_usersays_en.json",
                  "data/examples/dialogflow/intents/goodbye_usersays_es.json",
                  "data/examples/dialogflow/intents/hi.json",
                  "data/examples/dialogflow/intents/hi_usersays_en.json",
                  "data/examples/dialogflow/intents/hi_usersays_es.json",
                  "data/examples/dialogflow/intents/inform.json",
                  "data/examples/dialogflow/intents/inform_usersays_en.json",
                  "data/examples/dialogflow/intents/inform_usersays_es.json",
                  "data/examples/dialogflow/package.json",
              ],
          ),
          ("luis", ["data/examples/luis/demo-restaurants_v7.json",],),
          (
              "rasa",
              [
                  "data/examples/rasa/demo-rasa-multi-intent.yml",
                  "data/examples/rasa/demo-rasa-responses.yml",
                  "data/examples/rasa/demo-rasa.json",
                  "data/examples/rasa/demo-rasa.yml",
              ],
          ),
          ("wit", ["data/examples/wit/demo-flights.json"]),
      ],
  )
  def test_find_nlu_files_with_different_formats(test_input, expected):
      examples_dir = "data/examples"
      data_dir = os.path.join(examples_dir, test_input)
      nlu_files = rasa.shared.data.get_data_files(
          [data_dir], rasa.shared.data.is_nlu_file
      )
      assert [Path(f) for f in nlu_files] == [Path(f) for f in expected]
  
  
  def test_is_nlu_file_with_json():
      test = {
          "rasa_nlu_data": {
              "lookup_tables": [
                  {"name": "plates", "elements": ["beans", "rice", "tacos", "cheese"]}
              ]
          }
      }
  
      directory = tempfile.mkdtemp()
      file = os.path.join(directory, "test.json")
  
      write_text_file(json_to_string(test), file)
  
      assert rasa.shared.data.is_nlu_file(file)
  
  
  def test_is_not_nlu_file_with_json():
      directory = tempfile.mkdtemp()
      file = os.path.join(directory, "test.json")
      write_text_file('{"test": "a"}', file)
  
      assert not rasa.shared.data.is_nlu_file(file)
  
  
  def test_get_story_file_with_yaml():
      examples_dir = "data/test_yaml_stories"
      core_files = rasa.shared.data.get_data_files(
          [examples_dir], YAMLStoryReader.is_stories_file
      )
      assert core_files
  