code: def test_should_normalize_synonyms(
      self, mocked_get_string_variations
  ):
      # Given
      # pylint: disable=unused-argument
      def mock_get_string_variations(
          string,
          language,
          builtin_entity_parser,
          numbers=True,
          case=True,
          and_=True,
          punctuation=True,
      ):
          return {string.lower(), string.title()}
  
      mocked_get_string_variations.side_effect = (
          mock_get_string_variations
      )
      dataset = {
          "intents": {
              "intent1": {
                  "utterances": [
                      {
                          "data": [
                              {
                                  "text": "ëNtity",
                                  "entity": "entity1",
                                  "slot_name": "startTime",
                              }
                          ]
                      }
                  ]
              }
          },
          "entities": {
              "entity1": {
                  "data": [],
                  "use_synonyms": True,
                  "automatically_extensible": True,
                  "matching_strictness": 1.0,
              }
          },
          "language": "en",
      }
  
      expected_dataset = {
          "intents": {
              "intent1": {
                  "utterances": [
                      {
                          "data": [
                              {
                                  "text": "ëNtity",
                                  "entity": "entity1",
                                  "slot_name": "startTime",
                              }
                          ]
                      }
                  ]
              }
          },
          "entities": {
              "entity1": {
                  "utterances": {
                      "ëntity": "ëNtity",
                      "Ëntity": "ëNtity",
                      "ëNtity": "ëNtity",
                  },
                  "automatically_extensible": True,
                  "capitalize": False,
                  "matching_strictness": 1.0,
              }
          },
          "language": "en",
          "validated": True,
      }
  
      # When
      dataset = validate_and_format_dataset(dataset)
  
      # Then
      self.assertDictEqual(expected_dataset, dataset)
  
imports: from __future__ import unicode_literals
  import io
  from builtins import range, str
  from future.utils import iteritems
  from mock import mock, patch
  from snips_nlu.constants import ENTITIES, SNIPS_DATETIME, VALIDATED
  from snips_nlu.dataset import Dataset
  from snips_nlu.dataset.validation import validate_and_format_dataset, _validate_and_format_custom_entity
  from snips_nlu.exceptions import DatasetFormatError
  from snips_nlu.tests.utils import SnipsTest, EntityParserMock
label_desc: Use image node_id 14 for calling the TestDatasetValidation obj's underlying member method code with example usage: obj.test_should_normalize_synonyms(mocked_get_string_variations) and returns: unknown