code: def test_should_be_serializable(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
  
  ---
  type: intent
  name: MakeCoffee
  utterances:
  - make me [number_of_cups:snips/number](one) cup of coffee please
  - brew [number_of_cups] cups of coffee"""
      )
      dataset = Dataset.from_yaml_files("en", [dataset_stream]).json
  
      # pylint:disable=unused-variable
      @IntentParser.register("test_intent_parser1", True)
      class TestIntentParser1(MockIntentParser):
          pass
  
      @IntentParser.register("test_intent_parser2", True)
      class TestIntentParser2(MockIntentParser):
          pass
  
      # pylint:enable=unused-variable
  
      parser1_config = {
          "unit_name": "test_intent_parser1",
          "my_param1": "foo",
      }
      parser2_config = {
          "unit_name": "test_intent_parser2",
          "my_param2": "bar",
      }
      parsers_configs = [parser1_config, parser2_config]
      config = NLUEngineConfig(parsers_configs)
      engine = SnipsNLUEngine(config).fit(dataset)
  
      # When
      engine.persist(self.tmp_file_path)
  
      # Then
      expected_engine_dict = {
          "unit_name": "nlu_engine",
          "dataset_metadata": {
              "language_code": "en",
              "entities": {
                  "Temperature": {
                      "automatically_extensible": True,
                  }
              },
              "slot_name_mappings": {
                  "MakeCoffee": {"number_of_cups": "snips/number"},
                  "MakeTea": {
                      "beverage_temperature": "Temperature",
                      "number_of_cups": "snips/number",
                  },
              },
          },
          "config": {
              "unit_name": "nlu_engine",
              "intent_parsers_configs": [
                  {
                      "unit_name": "test_intent_parser1",
                      "my_param1": "foo",
                  },
                  {
                      "unit_name": "test_intent_parser2",
                      "my_param2": "bar",
                  },
              ],
          },
          "intent_parsers": [
              "test_intent_parser1",
              "test_intent_parser2",
          ],
          "builtin_entity_parser": "builtin_entity_parser",
          "custom_entity_parser": "custom_entity_parser",
          "model_version": snips_nlu.__model_version__,
          "training_package_version": snips_nlu.__version__,
      }
      self.assertJsonContent(
          self.tmp_file_path / "nlu_engine.json", expected_engine_dict
      )
      self.assertJsonContent(
          self.tmp_file_path / "test_intent_parser1" / "metadata.json",
          {"unit_name": "test_intent_parser1", "fitted": True},
      )
      self.assertJsonContent(
          self.tmp_file_path / "test_intent_parser2" / "metadata.json",
          {"unit_name": "test_intent_parser2", "fitted": True},
      )
  
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 10 for calling the TestSnipsNLUEngine obj's underlying member method code with example usage: obj.test_should_be_serializable() without return types