code: '''simple docstring'''
  
  
  
  
  
  import unittest
  
  from transformers import ErnieMTokenizer
  from transformers.testing_utils import get_tests_dir, require_sentencepiece, require_tokenizers, slow
  
  from ...test_tokenization_common import TokenizerTesterMixin
  
  
  A           =   get_tests_dir("fixtures/spiece.model")
  
  
  
  @require_sentencepiece
  @require_tokenizers
  class  lowerCAmelCase__   (       a__					,							unittest.TestCase       ):
  
  
  
    '''simple docstring'''
  
  
  
  
  
  
    _UpperCamelCase						= ErnieMTokenizer
    _UpperCamelCase						= False
    _UpperCamelCase						= True
    _UpperCamelCase						= False
    _UpperCamelCase						= False
  
    def 		_lowerCamelCase	(self  : str    )   ->       Union[str, Any]:
          super().setUp()
  
          # We have a SentencePiece fixture for testing
          snake_case_						       =							ErnieMTokenizer(__A	, unk_token="<unk>"	, pad_token="<pad>"    )
          tokenizer.save_pretrained(self.tmpdirname    )
  
    def 		_lowerCamelCase	(self  : str	, lowerCAmelCase_  : str    )   ->       Optional[int]:
          snake_case_						       =							"this is a test"
          snake_case_						       =							"this is a test"
          return input_text, output_text
  
    def 		_lowerCamelCase	(self  : Tuple    )   ->       Tuple:
          snake_case_						       =							"<pad>"
          snake_case_						       =							0
  
          self.assertEqual(self.get_tokenizer()._convert_token_to_id(__A    )	, __A    )
          self.assertEqual(self.get_tokenizer()._convert_id_to_token(__A    )	, __A    )
  
    def 		_lowerCamelCase	(self  : Tuple    )   ->       Optional[Any]:
          snake_case_						       =							list(self.get_tokenizer().get_vocab().keys()    )
  
          self.assertEqual(vocab_keys[0]	, "<pad>"    )
          self.assertEqual(vocab_keys[1]	, "<unk>"    )
          self.assertEqual(vocab_keys[-1]	, "▁eloquent"    )
          self.assertEqual(len(__A    )	, 3_00_00    )
  
    def 		_lowerCamelCase	(self  : Dict    )   ->       Dict:
          self.assertEqual(self.get_tokenizer().vocab_size	, 3_00_00    )
  
    def 		_lowerCamelCase	(self  : List[Any]    )   ->       int:
  
  
  
  
  
  
  
          if not self.test_rust_tokenizer:
                return
  
          snake_case_						       =							self.get_tokenizer()
          snake_case_						       =							self.get_rust_tokenizer()
  
          snake_case_						       =							"I was born in 92000, and this is falsé."
  
          snake_case_						       =							tokenizer.tokenize(__A    )
          snake_case_						       =							rust_tokenizer.tokenize(__A    )
          self.assertListEqual(__A	, __A    )
  
          snake_case_						       =							tokenizer.encode(__A	, add_special_tokens=__A    )
          snake_case_						       =							rust_tokenizer.encode(__A	, add_special_tokens=__A    )
          self.assertListEqual(__A	, __A    )
  
          snake_case_						       =							self.get_rust_tokenizer()
          snake_case_						       =							tokenizer.encode(__A    )
          snake_case_						       =							rust_tokenizer.encode(__A    )
          self.assertListEqual(__A	, __A    )
  
    def 		_lowerCamelCase	(self  : int    )   ->       Optional[int]:
          snake_case_						       =							ErnieMTokenizer(__A	, do_lower_case=__A	, unk_token="<unk>"	, pad_token="<pad>"    )
  
          snake_case_						       =							tokenizer.tokenize("This is a test"    )
          self.assertListEqual(__A	, ["▁this", "▁is", "▁a", "▁test"]    )
  
          self.assertListEqual(tokenizer.convert_tokens_to_ids(__A    )	, [48, 25, 21, 12_89]    )
  
          snake_case_						       =							tokenizer.tokenize("I was born in 92000, and this is falsé."    )
          # ErnieMTokenizer(paddlenlp implementation) outputs '9' instead of '_9' so to mimic that '_9' is changed to '9'
          self.assertListEqual(
              __A	, ["▁i", "▁was", "▁born", "▁in", "9", "2000", ",", "▁and", "▁this", "▁is", "▁fal", "s", "é", "."]    )
          snake_case_						       =							tokenizer.convert_tokens_to_ids(__A    )
          self.assertListEqual(__A	, [31, 23, 3_86, 19, 5_18, 30_50, 15, 17, 48, 25, 82_56, 18, 1, 9]    )
  
          snake_case_						       =							tokenizer.convert_ids_to_tokens(__A    )
          self.assertListEqual(
              __A	, ["▁i", "▁was", "▁born", "▁in", "9", "2000", ",", "▁and", "▁this", "▁is", "▁fal", "s", "<unk>", "."]	, )
  
    def 		_lowerCamelCase	(self  : List[Any]    )   ->       Tuple:
          snake_case_						       =							ErnieMTokenizer(__A	, unk_token="<unk>"	, pad_token="<pad>"    )
  
          snake_case_						       =							tokenizer.encode("sequence builders"    )
          snake_case_						       =							tokenizer.encode("multi-sequence build"    )
  
          snake_case_						       =							tokenizer.build_inputs_with_special_tokens(__A    )
          snake_case_						       =							tokenizer.build_inputs_with_special_tokens(__A	, __A    )
  
          assert encoded_sentence == [tokenizer.cls_token_id] + text + [tokenizer.sep_token_id]
          assert encoded_pair == [tokenizer.cls_token_id] + text + [tokenizer.sep_token_id] + [
              tokenizer.sep_token_id
          ] + text_a + [tokenizer.sep_token_id]
  
  
    @slow
    def 		_lowerCamelCase	(self  : Any    )   ->       int:
          snake_case_						       =							{"input_ids": [[0, 1_10_62, 8_27_72, 7, 15, 8_27_72, 5_38, 5_15_29, 2_37, 1_71_98, 12_90, 2_06, 9, 21_51_75, 13_14, 1_36, 1_71_98, 12_90, 2_06, 9, 5_63_59, 42, 12_20_09, 9, 1_64_66, 16, 8_73_44, 45_37, 9, 47_17, 7_83_81, 6, 15_99_58, 7, 15, 2_44_80, 6_18, 4, 5_27, 2_26_93, 9, 3_04, 4, 27_77, 2_44_80, 98_74, 4, 4_35_23, 5_94, 4, 8_03, 1_83_92, 3_31_89, 18, 4, 4_35_23, 2_44_47, 5, 5, 5, 16, 1_00, 2_49_55, 8_36_58, 96_26, 14_40_57, 15, 8_39, 2_23_35, 16, 1_36, 2_49_55, 8_36_58, 8_34_79, 15, 3_91_02, 7_24, 16, 6_78, 6_45, 64_60, 13_28, 45_89, 42, 12_20_09, 11_57_74, 23, 35_59, 13_28, 4_68_76, 7, 1_36, 5_38_94, 19_40, 4_22_27, 4_11_59, 1_77_21, 8_23, 4_25, 4, 2_75_12, 9_87_22, 2_06, 1_36, 55_31, 49_70, 9_19, 1_73_36, 5, 2], [0, 2_00_80, 6_18, 83, 8_27_75, 47, 4_79, 9, 15_17, 73, 5_38_94, 3_33, 8_05_81, 11_01_17, 1_88_11, 52_56, 12_95, 51, 15_25_26, 2_97, 79_86, 3_90, 12_44_16, 5_38, 3_54_31, 2_14, 98, 1_50_44, 2_57_37, 1_36, 71_08, 4_37_01, 23, 7_56, 13_53_55, 7, 5, 2, 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, 5_81, 6_37_73, 11_94_55, 6, 14_77_97, 8_82_03, 7, 6_45, 70, 21, 32_85, 1_02_69, 5, 2, 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]]}
          # fmt: on
  
          self.tokenizer_integration_test_util(
              expected_encoding=__A	, model_name="susnato/ernie-m-base_pytorch"	, sequences=[
                  "Transformers (formerly known as pytorch-transformers and pytorch-pretrained-bert) provides "
                  "general-purpose architectures (BERT, GPT-2, RoBERTa, XLM, DistilBert, XLNet...) for Natural "
                  "Language Understanding (NLU) and Natural Language Generation (NLG) with over32+ pretrained "
                  "models in100+ languages and deep interoperability between Jax, PyTorch and TensorFlow.",
                  "BERT is designed to pre-train deep bidirectional representations from unlabeled text by jointly "
                  "conditioning on both left and right context in all layers.",
                  "The quick brown fox jumps over the lazy dog.",
              ]	, )
  
  
style_context: 
  '''simple docstring'''
  
  
  
  
  
  from __future__ import annotations
  
  import random
  
  
  
  class  lowerCAmelCase__   :
  
  
  
    '''simple docstring'''
  
  
  
  
  
  
    _UpperCamelCase						= 6
  
    def __init__(self  : List[Any]    )   ->       Optional[Any]:
          snake_case_						       =							list(range(1	, Dice.NUM_SIDES + 1    )    )
  
  
    def 		_lowerCamelCase	(self  : Optional[int]    )   ->       int:
          return random.choice(self.sides    )
  
  def   snake_case_       (							_a     :							int ,					_a     :							int = 2			):
        snake_case_						       =							[Dice() for i in range(_a			)]
        snake_case_						       =							[0] * (len(_a			) * Dice.NUM_SIDES + 1)
        for _ in range(_a			):
              count_of_sum[sum(dice.roll() for dice in dices			)] += 1
        snake_case_						       =							[round((count * 100) / num_throws ,					2			) for count in count_of_sum]
        return probability[num_dice:]  # remove probability of sums that never appear
  
  
  if __name__ == "__main__":
       import doctest
  
       doctest.testmod()
  
  