code: def test_and_variations(self):
      # Given
      language = LANGUAGE_EN
      data = [
          (
              "a and b and c",
              {
                  "a and b & c",
                  "a & b and c",
                  "a & b & c",
                  "a and b and c",
              },
          ),
          ("random", set()),
          ("be&you", set()),
      ]
  
      for string, expected_variations in data:
          # When
          variations = and_variations(string, language)
          # Then
          self.assertSetEqual(variations, expected_variations)
  
file_path: snips-nlu/snips_nlu/tests/test_string_variations.py
imports: from __future__ import unicode_literals
  from mock import MagicMock
  from snips_nlu.constants import LANGUAGE_EN, LANGUAGE_FR, RES_MATCH_RANGE, SNIPS_NUMBER, START
  from snips_nlu.entity_parser import BuiltinEntityParser
  from snips_nlu.string_variations import alphabetic_value, and_variations, get_string_variations, numbers_variations, punctuation_variations
  from snips_nlu.tests.utils import SnipsTest
label_desc: Use image node_id 1 for calling the TestStringVariations obj's underlying member method code with example usage: obj.test_and_variations() without return types