






"""simple docstring"""





import unittest

from transformers.models.xlm_prophetnet.tokenization_xlm_prophetnet import SPIECE_UNDERLINE, XLMProphetNetTokenizer
from transformers.testing_utils import get_tests_dir, require_sentencepiece, slow
from transformers.utils import cached_property

from ...test_tokenization_common import TokenizerTesterMixin


_SCREAMING_SNAKE_CASE					:				Union[str, Any]					    =						get_tests_dir('''fixtures/test_sentencepiece.model''')






@require_sentencepiece
class      a						(					__snake_case  ,      unittest.TestCase		):
    SCREAMING_SNAKE_CASE						:     Any						= XLMProphetNetTokenizer
    SCREAMING_SNAKE_CASE						:     Union[str, Any]						= False
    SCREAMING_SNAKE_CASE						:     Union[str, Any]						= True






    def    UpperCamelCase       (       self     :							Dict					)     ->		List[Any]:
      super().setUp()

      # We have a SentencePiece fixture for testing
      lowerCamelCase_         =						XLMProphetNetTokenizer(__SCREAMING_SNAKE_CASE       ,						keep_accents=__SCREAMING_SNAKE_CASE					)
      tokenizer.save_pretrained(self.tmpdirname					)






    def    UpperCamelCase       (       self     :							Tuple					)     ->		Any:
      lowerCamelCase_         =						'[PAD]'
      lowerCamelCase_         =						0

      self.assertEqual(self.get_tokenizer()._convert_token_to_id(__SCREAMING_SNAKE_CASE					)       ,						__SCREAMING_SNAKE_CASE					)
      self.assertEqual(self.get_tokenizer()._convert_id_to_token(__SCREAMING_SNAKE_CASE					)       ,						__SCREAMING_SNAKE_CASE					)






    def    UpperCamelCase       (       self     :							Optional[Any]					)     ->		List[Any]:
      lowerCamelCase_         =						list(self.get_tokenizer().get_vocab().keys()					)

      self.assertEqual(vocab_keys[0]       ,						'[PAD]'					)
      self.assertEqual(vocab_keys[1]       ,						'[CLS]'					)
      self.assertEqual(vocab_keys[-1]       ,						'j'					)
      self.assertEqual(len(__SCREAMING_SNAKE_CASE					)       ,						1012					)






    def    UpperCamelCase       (       self     :							Optional[int]					)     ->		Union[str, Any]:
      self.assertEqual(self.get_tokenizer().vocab_size       ,						1012					)






    def    UpperCamelCase       (       self     :							List[Any]					)     ->		Optional[int]:
      lowerCamelCase_         =						XLMProphetNetTokenizer(__SCREAMING_SNAKE_CASE       ,						keep_accents=__SCREAMING_SNAKE_CASE					)

      lowerCamelCase_         =						tokenizer.tokenize('This is a test'					)
      self.assertListEqual(__SCREAMING_SNAKE_CASE       ,						['▁This', '▁is', '▁a', '▁t', 'est']					)

      self.assertListEqual(
          tokenizer.convert_tokens_to_ids(__SCREAMING_SNAKE_CASE					)       ,						[value + tokenizer.fairseq_offset for value in [285, 46, 10, 170, 382]]       ,						)

      lowerCamelCase_         =						tokenizer.tokenize('I was born in 92000, and this is falsé.'					)
      self.assertListEqual(
          __SCREAMING_SNAKE_CASE       ,						[
              SPIECE_UNDERLINE + 'I',
              SPIECE_UNDERLINE + 'was',
              SPIECE_UNDERLINE + 'b',
              'or',
              'n',
              SPIECE_UNDERLINE + 'in',
              SPIECE_UNDERLINE + '',
              '9',
              '2',
              '0',
              '0',
              '0',
              ',',
              SPIECE_UNDERLINE + 'and',
              SPIECE_UNDERLINE + 'this',
              SPIECE_UNDERLINE + 'is',
              SPIECE_UNDERLINE + 'f',
              'al',
              's',
              'é',
              '.',
          ]       ,						)
      lowerCamelCase_         =						tokenizer.convert_tokens_to_ids(__SCREAMING_SNAKE_CASE					)
      self.assertListEqual(
          __SCREAMING_SNAKE_CASE       ,						[
              value + tokenizer.fairseq_offset
              for value in [8, 21, 84, 55, 24, 19, 7, -9, 602, 347, 347, 347, 3, 12, 66, 46, 72, 80, 6, -9, 4]
          ]       ,						)

      lowerCamelCase_         =						tokenizer.convert_ids_to_tokens(__SCREAMING_SNAKE_CASE					)
      self.assertListEqual(
          __SCREAMING_SNAKE_CASE       ,						[
              SPIECE_UNDERLINE + 'I',
              SPIECE_UNDERLINE + 'was',
              SPIECE_UNDERLINE + 'b',
              'or',
              'n',
              SPIECE_UNDERLINE + 'in',
              SPIECE_UNDERLINE + '',
              '[UNK]',
              '2',
              '0',
              '0',
              '0',
              ',',
              SPIECE_UNDERLINE + 'and',
              SPIECE_UNDERLINE + 'this',
              SPIECE_UNDERLINE + 'is',
              SPIECE_UNDERLINE + 'f',
              'al',
              's',
              '[UNK]',
              '.',
          ]       ,						)






    @cached_property
    def    UpperCamelCase       (       self     :							Dict					)     ->		Optional[int]:
      return XLMProphetNetTokenizer.from_pretrained('microsoft/xprophetnet-large-wiki100-cased'					)






    @slow
    def    UpperCamelCase       (       self     :							Any					)     ->		int:
      lowerCamelCase_         =						'Hello World!'
      lowerCamelCase_         =						[35389, 6672, 49, 2]
      self.assertListEqual(__SCREAMING_SNAKE_CASE       ,						self.big_tokenizer.encode(__SCREAMING_SNAKE_CASE					)					)






    @slow
    def    UpperCamelCase       (       self     :							Optional[int]					)     ->		Tuple:
      # fmt: off
      lowerCamelCase_         =						{'input_ids': [[11073, 82783, 18, 26, 82783, 549, 51540, 248, 17209, 1301, 217, 20, 215186, 1325, 147, 17209, 1301, 217, 20, 56370, 53, 122020, 20, 16477, 27, 87355, 4548, 20, 4728, 78392, 17, 159969, 18, 26, 24491, 629, 15, 538, 22704, 5439, 15, 2788, 24491, 9885, 15, 43534, 605, 15, 814, 18403, 33200, 29, 15, 43534, 24458, 12410, 111, 24966, 83669, 9637, 144068, 26, 850, 22346, 27, 147, 24966, 83669, 83490, 26, 39113, 735, 27, 689, 656, 2800, 1339, 4600, 53, 122020, 115785, 34, 816, 1339, 46887, 18, 147, 53905, 1951, 42238, 41170, 17732, 834, 436, 15, 27523, 98733, 217, 147, 5542, 4981, 930, 17347, 16, 2], [20091, 629, 94, 82786, 58, 490, 20, 1528, 84, 53905, 344, 80592, 110128, 18822, 5267, 1306, 62, 152537, 308, 7997, 401, 124427, 549, 35442, 225, 109, 15055, 25748, 147, 7119, 43712, 34, 767, 135366, 18, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [592, 63784, 119466, 17, 147808, 88214, 18, 656, 81, 32, 3296, 10280, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], 'attention_mask': [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]}  # noqa: E501
      # fmt: on

      self.tokenizer_integration_test_util(
          expected_encoding=__SCREAMING_SNAKE_CASE       ,						model_name='microsoft/xprophetnet-large-wiki100-cased'       ,						revision='1acad1643ddd54a44df6a1b797ada8373685d90e'       ,						)












"""simple docstring"""





import string







def      lowerCamelCase__       (							_lowerCamelCase       :		str )      ->				None:
  for key in range(len(string.ascii_uppercase ) ):
    lowerCamelCase_         =						''
    for symbol in message:
      if symbol in string.ascii_uppercase:
        lowerCamelCase_         =						string.ascii_uppercase.find(_lowerCamelCase )
        lowerCamelCase_         =						num - key
        if num < 0:
          lowerCamelCase_         =						num + len(string.ascii_uppercase )
        lowerCamelCase_         =						translated + string.ascii_uppercase[num]
      else:
        lowerCamelCase_         =						translated + symbol
    print(F'''Decryption using Key #{key}: {translated}''' )







def      lowerCamelCase__       (							)      ->				None:
  lowerCamelCase_         =						input('Encrypted message: ' )
  lowerCamelCase_         =						message.upper()
  decrypt(_lowerCamelCase )


if __name__ == "__main__":
  import doctest

  doctest.testmod()
  main()




