






import unittest

from transformers import SPIECE_UNDERLINE
from transformers.models.speechta import SpeechTaTokenizer
from transformers.testing_utils import get_tests_dir, require_sentencepiece, require_tokenizers, slow
from transformers.tokenization_utils import AddedToken

from ...test_tokenization_common import TokenizerTesterMixin


a__       =     get_tests_dir("""fixtures/test_sentencepiece_bpe_char.model""")


@require_sentencepiece
@require_tokenizers
class    _lowerCAmelCase			(		__lowerCamelCase     ,      unittest.TestCase      ):



    """simple docstring"""



    _lowercase				:   List[str]      =  SpeechTaTokenizer
    _lowercase				:   str      =  False
    _lowercase				:   int      =  True



    def 					__magic_name__							(      self    :    str):






           '''simple docstring'''







           super().setUp()

           # We have a SentencePiece fixture for testing
           snake_case__	  =       SpeechTaTokenizer(UpperCamelCase_)

           snake_case__	  =       AddedToken("""<mask>"""			,		lstrip=UpperCamelCase_			,		rstrip=UpperCamelCase_)
           snake_case__	  =       mask_token
           tokenizer.add_special_tokens({"""mask_token""": mask_token})
           tokenizer.add_tokens(["""<ctc_blank>"""])

           tokenizer.save_pretrained(self.tmpdirname)



    def 					__magic_name__							(      self    :    List[Any]			,		UpperCamelCase__    :    Tuple):






           '''simple docstring'''







           snake_case__	  =       """this is a test"""
           snake_case__	  =       """this is a test"""
           return input_text, output_text



    def 					__magic_name__							(      self    :    Optional[Any]			,		UpperCamelCase__    :    List[Any]			,		UpperCamelCase__    :    Optional[int]=False			,		UpperCamelCase__    :    Dict=2_0			,		UpperCamelCase__    :    List[str]=5):






           '''simple docstring'''







           snake_case__  , snake_case__	  =       self.get_input_output_texts(UpperCamelCase_)
           snake_case__	  =       tokenizer.encode(UpperCamelCase_			,		add_special_tokens=UpperCamelCase_)
           snake_case__	  =       tokenizer.decode(UpperCamelCase_			,		clean_up_tokenization_spaces=UpperCamelCase_)
           return text, ids



    def 					__magic_name__							(      self    :    Optional[Any]):






           '''simple docstring'''







           snake_case__	  =       """<pad>"""
           snake_case__	  =       1

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



    def 					__magic_name__							(      self    :    Optional[Any]):






           '''simple docstring'''







           snake_case__	  =       list(self.get_tokenizer().get_vocab().keys())

           self.assertEqual(vocab_keys[0]			,		"""<s>""")
           self.assertEqual(vocab_keys[1]			,		"""<pad>""")
           self.assertEqual(vocab_keys[-4]			,		"""œ""")
           self.assertEqual(vocab_keys[-2]			,		"""<mask>""")
           self.assertEqual(vocab_keys[-1]			,		"""<ctc_blank>""")
           self.assertEqual(len(UpperCamelCase_)			,		8_1)



    def 					__magic_name__							(      self    :    Optional[int]):






           '''simple docstring'''







           self.assertEqual(self.get_tokenizer().vocab_size			,		7_9)



    def 					__magic_name__							(      self    :    Tuple):






           '''simple docstring'''







           snake_case__	  =       self.get_tokenizers(do_lower_case=UpperCamelCase_)
           for tokenizer in tokenizers:
                  with self.subTest(F'''{tokenizer.__class__.__name__}'''):
                         snake_case__	  =       tokenizer.vocab_size
                         snake_case__	  =       len(UpperCamelCase_)

                         self.assertNotEqual(UpperCamelCase_			,		0)

                         # We usually have added tokens from the start in tests because our vocab fixtures are
                         # smaller than the original vocabs - let's not assert this
                         # self.assertEqual(vocab_size, all_size)

                         snake_case__	  =       ["""aaaaa bbbbbb""", """cccccccccdddddddd"""]
                         snake_case__	  =       tokenizer.add_tokens(UpperCamelCase_)
                         snake_case__	  =       tokenizer.vocab_size
                         snake_case__	  =       len(UpperCamelCase_)

                         self.assertNotEqual(UpperCamelCase_			,		0)
                         self.assertEqual(UpperCamelCase_			,		UpperCamelCase_)
                         self.assertEqual(UpperCamelCase_			,		len(UpperCamelCase_))
                         self.assertEqual(UpperCamelCase_			,		all_size + len(UpperCamelCase_))

                         snake_case__	  =       tokenizer.encode("""aaaaa bbbbbb low cccccccccdddddddd l"""			,		add_special_tokens=UpperCamelCase_)

                         self.assertGreaterEqual(len(UpperCamelCase_)			,		4)
                         self.assertGreater(tokens[0]			,		tokenizer.vocab_size - 1)
                         self.assertGreater(tokens[-3]			,		tokenizer.vocab_size - 1)

                         snake_case__	  =       {"""eos_token""": """>>>>|||<||<<|<<""", """pad_token""": """<<<<<|||>|>>>>|>"""}
                         snake_case__	  =       tokenizer.add_special_tokens(UpperCamelCase_)
                         snake_case__	  =       tokenizer.vocab_size
                         snake_case__	  =       len(UpperCamelCase_)

                         self.assertNotEqual(UpperCamelCase_			,		0)
                         self.assertEqual(UpperCamelCase_			,		UpperCamelCase_)
                         self.assertEqual(UpperCamelCase_			,		len(UpperCamelCase_))
                         self.assertEqual(UpperCamelCase_			,		all_size_a + len(UpperCamelCase_))

                         snake_case__	  =       tokenizer.encode(
                             """>>>>|||<||<<|<< aaaaabbbbbb low cccccccccdddddddd <<<<<|||>|>>>>|> l"""			,		add_special_tokens=UpperCamelCase_)

                         self.assertGreaterEqual(len(UpperCamelCase_)			,		6)
                         self.assertGreater(tokens[0]			,		tokenizer.vocab_size - 1)
                         self.assertGreater(tokens[0]			,		tokens[1])
                         self.assertGreater(tokens[-3]			,		tokenizer.vocab_size - 1)
                         self.assertGreater(tokens[-3]			,		tokens[-4])
                         self.assertEqual(tokens[0]			,		tokenizer.eos_token_id)
                         self.assertEqual(tokens[-3]			,		tokenizer.pad_token_id)



    def 					__magic_name__							(      self    :    Union[str, Any]):






           '''simple docstring'''







           pass



    def 					__magic_name__							(      self    :    int):






           '''simple docstring'''







           pass



    def 					__magic_name__							(      self    :    int):






           '''simple docstring'''







           snake_case__	  =       self.get_tokenizer()

           snake_case__	  =       tokenizer.tokenize("""This is a test""")
           # fmt: off
           self.assertListEqual(UpperCamelCase_			,		[SPIECE_UNDERLINE, """T""", """h""", """i""", """s""", SPIECE_UNDERLINE, """i""", """s""", SPIECE_UNDERLINE, """a""", SPIECE_UNDERLINE, """t""", """e""", """s""", """t"""])
           # fmt: on

           self.assertListEqual(
               tokenizer.convert_tokens_to_ids(UpperCamelCase_)			,		[4, 3_2, 1_1, 1_0, 1_2, 4, 1_0, 1_2, 4, 7, 4, 6, 5, 1_2, 6]			,		)

           snake_case__	  =       tokenizer.tokenize("""I was born in 92000, and this is falsé.""")
           self.assertListEqual(
               UpperCamelCase_			,		[SPIECE_UNDERLINE, """I""", SPIECE_UNDERLINE, """w""", """a""", """s""", SPIECE_UNDERLINE, """b""", """o""", """r""", """n""", SPIECE_UNDERLINE, """i""", """n""", SPIECE_UNDERLINE, """92000""", """,""", SPIECE_UNDERLINE, """a""", """n""", """d""", SPIECE_UNDERLINE, """t""", """h""", """i""", """s""", SPIECE_UNDERLINE, """i""", """s""", SPIECE_UNDERLINE, """f""", """a""", """l""", """s""", """é""", """."""])

           snake_case__	  =       tokenizer.convert_tokens_to_ids(UpperCamelCase_)
           # fmt: off
           self.assertListEqual(UpperCamelCase_			,		[4, 3_0, 4, 2_0, 7, 1_2, 4, 2_5, 8, 1_3, 9, 4, 1_0, 9, 4, 3, 2_3, 4, 7, 9, 1_4, 4, 6, 1_1, 1_0, 1_2, 4, 1_0, 1_2, 4, 1_9, 7, 1_5, 1_2, 7_3, 2_6])
           # fmt: on

           snake_case__	  =       tokenizer.convert_ids_to_tokens(UpperCamelCase_)
           self.assertListEqual(
               UpperCamelCase_			,		[SPIECE_UNDERLINE, """I""", SPIECE_UNDERLINE, """w""", """a""", """s""", SPIECE_UNDERLINE, """b""", """o""", """r""", """n""", SPIECE_UNDERLINE, """i""", """n""", SPIECE_UNDERLINE, """<unk>""", """,""", SPIECE_UNDERLINE, """a""", """n""", """d""", SPIECE_UNDERLINE, """t""", """h""", """i""", """s""", SPIECE_UNDERLINE, """i""", """s""", SPIECE_UNDERLINE, """f""", """a""", """l""", """s""", """é""", """."""])



    @slow
    def 					__magic_name__							(      self    :    Tuple):






           '''simple docstring'''







           snake_case__	  =       [
               """Transformers (formerly known as pytorch-transformers and pytorch-pretrained-bert) provides """
               """general-purpose architectures (BERT, GPT, RoBERTa, XLM, DistilBert, XLNet...) for Natural """
               """Language Understanding (NLU) and Natural Language Generation (NLG) with over thirty-two pretrained """
               """models in one hundred plus 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.""",
           ]

           # fmt: off
           snake_case__	  =       {
               """input_ids""": [
                   [4, 3_2, 1_3, 7, 9, 1_2, 1_9, 8, 1_3, 1_8, 5, 1_3, 1_2, 4, 6_4, 1_9, 8, 1_3, 1_8, 5, 1_3, 1_5, 2_2, 4, 2_8, 9, 8, 2_0, 9, 4, 7, 1_2, 4, 2_4, 2_2, 6, 8, 1_3, 1_7, 1_1, 3_9, 6, 1_3, 7, 9, 1_2, 1_9, 8, 1_3, 1_8, 5, 1_3, 1_2, 4, 7, 9, 1_4, 4, 2_4, 2_2, 6, 8, 1_3, 1_7, 1_1, 3_9, 2_4, 1_3, 5, 6, 1_3, 7, 1_0, 9, 5, 1_4, 3_9, 2_5, 5, 1_3, 6, 6_3, 4, 2_4, 1_3, 8, 2_7, 1_0, 1_4, 5, 1_2, 4, 2_1, 5, 9, 5, 1_3, 7, 1_5, 3_9, 2_4, 1_6, 1_3, 2_4, 8, 1_2, 5, 4, 7, 1_3, 1_7, 1_1, 1_0, 6, 5, 1_7, 6, 1_6, 1_3, 5, 1_2, 4, 6_4, 4_0, 4_7, 5_4, 3_2, 2_3, 4, 5_3, 4_9, 3_2, 2_3, 4, 5_4, 8, 4_0, 4_7, 5_4, 3_2, 7, 2_3, 4, 6_9, 5_2, 4_3, 2_3, 4, 5_1, 1_0, 1_2, 6, 1_0, 1_5, 4_0, 5, 1_3, 6, 2_3, 4, 6_9, 5_2, 4_8, 5, 6, 2_6, 2_6, 2_6, 6_3, 4, 1_9, 8, 1_3, 4, 4_8, 7, 6, 1_6, 1_3, 7, 1_5, 4, 5_2, 7, 9, 2_1, 1_6, 7, 2_1, 5, 4, 6_1, 9, 1_4, 5, 1_3, 1_2, 6, 7, 9, 1_4, 1_0, 9, 2_1, 4, 6_4, 4_8, 5_2, 6_1, 6_3, 4, 7, 9, 1_4, 4, 4_8, 7, 6, 1_6, 1_3, 7, 1_5, 4, 5_2, 7, 9, 2_1, 1_6, 7, 2_1, 5, 4, 5_3, 5, 9, 5, 1_3, 7, 6, 1_0, 8, 9, 4, 6_4, 4_8, 5_2, 5_3, 6_3, 4, 2_0, 1_0, 6, 1_1, 4, 8, 2_7, 5, 1_3, 4, 6, 1_1, 1_0, 1_3, 6, 2_2, 3_9, 6, 2_0, 8, 4, 2_4, 1_3, 5, 6, 1_3, 7, 1_0, 9, 5, 1_4, 4, 1_8, 8, 1_4, 5, 1_5, 1_2, 4, 1_0, 9, 4, 8, 9, 5, 4, 1_1, 1_6, 9, 1_4, 1_3, 5, 1_4, 4, 2_4, 1_5, 1_6, 1_2, 4, 1_5, 7, 9, 2_1, 1_6, 7, 2_1, 5, 1_2, 4, 7, 9, 1_4, 4, 1_4, 5, 5, 2_4, 4, 1_0, 9, 6, 5, 1_3, 8, 2_4, 5, 1_3, 7, 2_5, 1_0, 1_5, 1_0, 6, 2_2, 4, 2_5, 5, 6, 2_0, 5, 5, 9, 4, 5_8, 7, 3_7, 2_3, 4, 4_9, 2_2, 3_2, 8, 1_3, 1_7, 1_1, 4, 7, 9, 1_4, 4, 3_2, 5, 9, 1_2, 8, 1_3, 5_5, 1_5, 8, 2_0, 2_6, 2],
                   [4, 4_0, 4_7, 5_4, 3_2, 4, 1_0, 1_2, 4, 1_4, 5, 1_2, 1_0, 2_1, 9, 5, 1_4, 4, 6, 8, 4, 2_4, 1_3, 5, 3_9, 6, 1_3, 7, 1_0, 9, 4, 1_4, 5, 5, 2_4, 4, 2_5, 1_0, 1_4, 1_0, 1_3, 5, 1_7, 6, 1_0, 8, 9, 7, 1_5, 4, 1_3, 5, 2_4, 1_3, 5, 1_2, 5, 9, 6, 7, 6, 1_0, 8, 9, 1_2, 4, 1_9, 1_3, 8, 1_8, 4, 1_6, 9, 1_5, 7, 2_5, 5, 1_5, 5, 1_4, 4, 6, 5, 3_7, 6, 4, 2_5, 2_2, 4, 4_6, 8, 1_0, 9, 6, 1_5, 2_2, 4, 1_7, 8, 9, 1_4, 1_0, 6, 1_0, 8, 9, 1_0, 9, 2_1, 4, 8, 9, 4, 2_5, 8, 6, 1_1, 4, 1_5, 5, 1_9, 6, 4, 7, 9, 1_4, 4, 1_3, 1_0, 2_1, 1_1, 6, 4, 1_7, 8, 9, 6, 5, 3_7, 6, 4, 1_0, 9, 4, 7, 1_5, 1_5, 4, 1_5, 7, 2_2, 5, 1_3, 1_2, 2_6, 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, 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],
                   [4, 3_2, 1_1, 5, 4, 4_5, 1_6, 1_0, 1_7, 2_8, 4, 2_5, 1_3, 8, 2_0, 9, 4, 1_9, 8, 3_7, 4, 4_6, 1_6, 1_8, 2_4, 1_2, 4, 8, 2_7, 5, 1_3, 4, 6, 1_1, 5, 4, 1_5, 7, 5_7, 2_2, 4, 1_4, 8, 2_1, 2_6, 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, 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, 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],
               ],
               """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, 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, 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, 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, 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, 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, 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, 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, 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, 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],
               ]
           }
           # fmt: on

           self.tokenizer_integration_test_util(
               expected_encoding=UpperCamelCase_			,		model_name="""microsoft/speecht5_asr"""			,		revision="""c5ef64c71905caeccde0e4462ef3f9077224c524"""			,		sequences=UpperCamelCase_			,		)








from __future__ import annotations


class    _lowerCAmelCase			:



				"""simple docstring"""



				def __init__(      self    :    Optional[int]			,		UpperCamelCase__    :    int):






											'''simple docstring'''







											snake_case__	  =       data
											snake_case__	  =       None
											snake_case__	  =       None


def _UpperCAmelCase   (	a						:	Node | None ):  # In Order traversal of the tree
							if tree:
														display(tree.left )
														print(tree.data )
														display(tree.right )

def _UpperCAmelCase   (	a						:	Node | None ):
							return 1 + max(depth_of_tree(tree.left )  ,					depth_of_tree(tree.right ) ) if tree else 0

def _UpperCAmelCase   (	a						:	Node ):
							if not tree:
														return True
							if tree.left and tree.right:
														return is_full_binary_tree(tree.left ) and is_full_binary_tree(tree.right )
							else:
														return not tree.left and not tree.right

def _UpperCAmelCase   (	):  # Main function for testing.
							snake_case__	  =       Node(1 )
							snake_case__	  =       Node(2 )
							snake_case__	  =       Node(3 )
							snake_case__	  =       Node(4 )
							snake_case__	  =       Node(5 )
							snake_case__	  =       Node(6 )
							snake_case__	  =       Node(7 )
							snake_case__	  =       Node(8 )
							snake_case__	  =       Node(9 )

							print(is_full_binary_tree(a ) )
							print(depth_of_tree(a ) )
							print("""Tree is: """ )
							display(a )


if __name__ == "__main__":
	main()
