code: def test_should_parse_after_deserialization_from_dir(self):
      # Given
      dataset_stream = io.StringIO(
          """
  ---
  type: intent
  name: MakeTea
  utterances:
  - make me a [beverage_temperature:Temperature](hot) cup of tea
  - make me [number_of_cups:snips/number](five) tea cups
  - i want [number_of_cups] cups of [beverage_temperature](boiling hot) tea pls
  - can you prepare [number_of_cups] cup of [beverage_temperature](cold) tea ?
  
  ---
  type: intent
  name: MakeCoffee
  utterances:
  - make me [number_of_cups:snips/number](one) cup of coffee please
  - brew [number_of_cups] cups of coffee
  - can you prepare [number_of_cups] cup of coffee"""
      )
      dataset = Dataset.from_yaml_files("en", [dataset_stream]).json
      shared = self.get_shared_data(dataset)
      engine = SnipsNLUEngine(**shared).fit(dataset)
      text = "Give me 3 cups of hot tea please"
  
      # When
      engine.persist(self.tmp_file_path)
      deserialized_engine = SnipsNLUEngine.from_path(self.tmp_file_path)
      result = deserialized_engine.parse(text)
  
      # Then
      expected_slots = [
          resolved_slot(
              {START: 8, END: 9},
              "3",
              {"kind": "Number", "value": 3.0},
              "snips/number",
              "number_of_cups",
          ),
          custom_slot(
              unresolved_slot(
                  {START: 18, END: 21},
                  "hot",
                  "Temperature",
                  "beverage_temperature",
              )
          ),
      ]
      self.assertEqual(result[RES_INPUT], text)
      self.assertEqual(result[RES_INTENT][RES_INTENT_NAME], "MakeTea")
      self.assertListEqual(result[RES_SLOTS], expected_slots)
  
imports: from __future__ import unicode_literals
  import io
  import shutil
  import sys
  from builtins import str
  from unittest import skipIf
  from checksumdir import dirhash
  from mock import MagicMock, patch
  from snips_nlu_parsers import get_all_languages
  import snips_nlu
  from snips_nlu.common.io_utils import temp_dir
  from snips_nlu.constants import END, LANGUAGE, LANGUAGE_EN, RES_ENTITY, RES_INPUT, RES_INTENT, RES_INTENT_NAME, RES_MATCH_RANGE, RES_RAW_VALUE, RES_SLOTS, RES_SLOT_NAME, RES_VALUE, START
  from snips_nlu.dataset import Dataset, validate_and_format_dataset
  from snips_nlu.entity_parser import BuiltinEntityParser, CustomEntityParser, CustomEntityParserUsage
  from snips_nlu.exceptions import IntentNotFoundError, InvalidInputError, NotTrained, IncompatibleModelError, PersistingError, LoadingError
  from snips_nlu.intent_parser import IntentParser
  from snips_nlu.nlu_engine import SnipsNLUEngine
  from snips_nlu.pipeline.configs import NLUEngineConfig
  from snips_nlu.resources import load_resources
  from snips_nlu.result import custom_slot, empty_result, intent_classification_result, parsing_result, resolved_slot, unresolved_slot, extraction_result
  from snips_nlu.tests.utils import FixtureTest, MockIntentParser, get_empty_dataset
label_desc: Use image node_id 19 for calling the TestSnipsNLUEngine obj's underlying member method code with example usage: obj.test_should_parse_after_deserialization_from_dir() without return types