
"""simple docstring"""


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


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



@require_sentencepiece
@require_tokenizers
class 	__a	(   _lowerCAmelCase     ,  unittest.TestCase						):
       UpperCamelCase_		:       str				=      SpeechTaTokenizer
       UpperCamelCase_		:       Any				=      False
       UpperCamelCase_		:       Any				=      True






       def 						_SCREAMING_SNAKE_CASE							(	self			:				Any      )->	List[Any]:







              """simple docstring"""
              super().setUp()

              # We have a SentencePiece fixture for testing
              UpperCamelCase       			=		SpeechTaTokenizer(UpperCAmelCase_      )

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

              tokenizer.save_pretrained(self.tmpdirname      )






       def 						_SCREAMING_SNAKE_CASE							(	self			:				Optional[int]							,   UpperCAmelCase_			:				Dict      )->	Dict:







              """simple docstring"""
              UpperCamelCase       			=		"this is a test"
              UpperCamelCase       			=		"this is a test"
              return input_text, output_text






       def 						_SCREAMING_SNAKE_CASE							(	self			:				Optional[Any]							,   UpperCAmelCase_			:				List[Any]							,   UpperCAmelCase_			:				str=False							,   UpperCAmelCase_			:				List[str]=20							,   UpperCAmelCase_			:				List[str]=5      )->	Any:







              """simple docstring"""
              UpperCamelCase			,							UpperCamelCase       			=		self.get_input_output_texts(UpperCAmelCase_      )
              UpperCamelCase       			=		tokenizer.encode(UpperCAmelCase_							,   add_special_tokens=UpperCAmelCase_      )
              UpperCamelCase       			=		tokenizer.decode(UpperCAmelCase_							,   clean_up_tokenization_spaces=UpperCAmelCase_      )
              return text, ids






       def 						_SCREAMING_SNAKE_CASE							(	self			:				Union[str, Any]      )->	Tuple:







              """simple docstring"""
              UpperCamelCase       			=		"<pad>"
              UpperCamelCase       			=		1

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






       def 						_SCREAMING_SNAKE_CASE							(	self			:				str      )->	Union[str, Any]:







              """simple docstring"""
              UpperCamelCase       			=		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_      )							,   81      )






       def 						_SCREAMING_SNAKE_CASE							(	self			:				Optional[Any]      )->	Dict:







              """simple docstring"""
              self.assertEqual(self.get_tokenizer().vocab_size							,   79      )






       def 						_SCREAMING_SNAKE_CASE							(	self			:				str      )->	Any:







              """simple docstring"""
              UpperCamelCase       			=		self.get_tokenizers(do_lower_case=UpperCAmelCase_      )
              for tokenizer in tokenizers:
                     with self.subTest(f"{tokenizer.__class__.__name__}"      ):
                            UpperCamelCase       			=		tokenizer.vocab_size
                            UpperCamelCase       			=		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)

                            UpperCamelCase       			=		["aaaaa bbbbbb", "cccccccccdddddddd"]
                            UpperCamelCase       			=		tokenizer.add_tokens(UpperCAmelCase_      )
                            UpperCamelCase       			=		tokenizer.vocab_size
                            UpperCamelCase       			=		len(UpperCAmelCase_      )

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

                            UpperCamelCase       			=		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      )

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

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

                            UpperCamelCase       			=		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 						_SCREAMING_SNAKE_CASE							(	self			:				Optional[int]      )->	List[Any]:







              """simple docstring"""
              pass






       def 						_SCREAMING_SNAKE_CASE							(	self			:				int      )->	Optional[Any]:







              """simple docstring"""
              pass






       def 						_SCREAMING_SNAKE_CASE							(	self			:				Tuple      )->	Any:







              """simple docstring"""
              UpperCamelCase       			=		self.get_tokenizer()

              UpperCamelCase       			=		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, 32, 11, 10, 12, 4, 10, 12, 4, 7, 4, 6, 5, 12, 6]							,   )

              UpperCamelCase       			=		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", "é", "."]      )

              UpperCamelCase       			=		tokenizer.convert_tokens_to_ids(UpperCAmelCase_      )
              # fmt: off
              self.assertListEqual(UpperCAmelCase_							,   [4, 30, 4, 20, 7, 12, 4, 25, 8, 13, 9, 4, 10, 9, 4, 3, 23, 4, 7, 9, 14, 4, 6, 11, 10, 12, 4, 10, 12, 4, 19, 7, 15, 12, 73, 26]      )
              # fmt: on

              UpperCamelCase       			=		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 						_SCREAMING_SNAKE_CASE							(	self			:				int      )->	Any:







              """simple docstring"""
              # Use custom sequence because this tokenizer does not handle numbers.
              UpperCamelCase       			=		[
                  "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
              UpperCamelCase       			=		{
                  "input_ids": [
                      [4, 32, 13, 7, 9, 12, 19, 8, 13, 18, 5, 13, 12, 4, 64, 19, 8, 13, 18, 5, 13, 15, 22, 4, 28, 9, 8, 20, 9, 4, 7, 12, 4, 24, 22, 6, 8, 13, 17, 11, 39, 6, 13, 7, 9, 12, 19, 8, 13, 18, 5, 13, 12, 4, 7, 9, 14, 4, 24, 22, 6, 8, 13, 17, 11, 39, 24, 13, 5, 6, 13, 7, 10, 9, 5, 14, 39, 25, 5, 13, 6, 63, 4, 24, 13, 8, 27, 10, 14, 5, 12, 4, 21, 5, 9, 5, 13, 7, 15, 39, 24, 16, 13, 24, 8, 12, 5, 4, 7, 13, 17, 11, 10, 6, 5, 17, 6, 16, 13, 5, 12, 4, 64, 40, 47, 54, 32, 23, 4, 53, 49, 32, 23, 4, 54, 8, 40, 47, 54, 32, 7, 23, 4, 69, 52, 43, 23, 4, 51, 10, 12, 6, 10, 15, 40, 5, 13, 6, 23, 4, 69, 52, 48, 5, 6, 26, 26, 26, 63, 4, 19, 8, 13, 4, 48, 7, 6, 16, 13, 7, 15, 4, 52, 7, 9, 21, 16, 7, 21, 5, 4, 61, 9, 14, 5, 13, 12, 6, 7, 9, 14, 10, 9, 21, 4, 64, 48, 52, 61, 63, 4, 7, 9, 14, 4, 48, 7, 6, 16, 13, 7, 15, 4, 52, 7, 9, 21, 16, 7, 21, 5, 4, 53, 5, 9, 5, 13, 7, 6, 10, 8, 9, 4, 64, 48, 52, 53, 63, 4, 20, 10, 6, 11, 4, 8, 27, 5, 13, 4, 6, 11, 10, 13, 6, 22, 39, 6, 20, 8, 4, 24, 13, 5, 6, 13, 7, 10, 9, 5, 14, 4, 18, 8, 14, 5, 15, 12, 4, 10, 9, 4, 8, 9, 5, 4, 11, 16, 9, 14, 13, 5, 14, 4, 24, 15, 16, 12, 4, 15, 7, 9, 21, 16, 7, 21, 5, 12, 4, 7, 9, 14, 4, 14, 5, 5, 24, 4, 10, 9, 6, 5, 13, 8, 24, 5, 13, 7, 25, 10, 15, 10, 6, 22, 4, 25, 5, 6, 20, 5, 5, 9, 4, 58, 7, 37, 23, 4, 49, 22, 32, 8, 13, 17, 11, 4, 7, 9, 14, 4, 32, 5, 9, 12, 8, 13, 55, 15, 8, 20, 26, 2],
                      [4, 40, 47, 54, 32, 4, 10, 12, 4, 14, 5, 12, 10, 21, 9, 5, 14, 4, 6, 8, 4, 24, 13, 5, 39, 6, 13, 7, 10, 9, 4, 14, 5, 5, 24, 4, 25, 10, 14, 10, 13, 5, 17, 6, 10, 8, 9, 7, 15, 4, 13, 5, 24, 13, 5, 12, 5, 9, 6, 7, 6, 10, 8, 9, 12, 4, 19, 13, 8, 18, 4, 16, 9, 15, 7, 25, 5, 15, 5, 14, 4, 6, 5, 37, 6, 4, 25, 22, 4, 46, 8, 10, 9, 6, 15, 22, 4, 17, 8, 9, 14, 10, 6, 10, 8, 9, 10, 9, 21, 4, 8, 9, 4, 25, 8, 6, 11, 4, 15, 5, 19, 6, 4, 7, 9, 14, 4, 13, 10, 21, 11, 6, 4, 17, 8, 9, 6, 5, 37, 6, 4, 10, 9, 4, 7, 15, 15, 4, 15, 7, 22, 5, 13, 12, 26, 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, 32, 11, 5, 4, 45, 16, 10, 17, 28, 4, 25, 13, 8, 20, 9, 4, 19, 8, 37, 4, 46, 16, 18, 24, 12, 4, 8, 27, 5, 13, 4, 6, 11, 5, 4, 15, 7, 57, 22, 4, 14, 8, 21, 26, 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_							,   )







"""simple docstring"""


import unittest

import numpy as np

from transformers.testing_utils import require_torch, require_vision
from transformers.utils import is_torch_available, is_vision_available

from ...test_image_processing_common import ImageProcessingSavingTestMixin, prepare_image_inputs


if is_torch_available():
      import torch

if is_vision_available():
      from PIL import Image

      from transformers import PoolFormerImageProcessor



class 	__a	(   unittest.TestCase						):






       def __init__(	self			:				Optional[Any]							,   UpperCAmelCase_			:				Any							,   UpperCAmelCase_			:				Optional[Any]=7							,   UpperCAmelCase_			:				List[Any]=3							,   UpperCAmelCase_			:				Optional[int]=30							,   UpperCAmelCase_			:				Any=400							,   UpperCAmelCase_			:				Any=True							,   UpperCAmelCase_			:				Dict=None							,   UpperCAmelCase_			:				Dict=0.9							,   UpperCAmelCase_			:				Tuple=None							,   UpperCAmelCase_			:				Tuple=True							,   UpperCAmelCase_			:				Optional[int]=[0.5, 0.5, 0.5]							,   UpperCAmelCase_			:				Union[str, Any]=[0.5, 0.5, 0.5]							,   )->	List[str]:







              """simple docstring"""
              UpperCamelCase       			=		size if size is not None else {"shortest_edge": 30}
              UpperCamelCase       			=		crop_size if crop_size is not None else {"height": 30, "width": 30}
              UpperCamelCase       			=		parent
              UpperCamelCase       			=		batch_size
              UpperCamelCase       			=		num_channels
              UpperCamelCase       			=		min_resolution
              UpperCamelCase       			=		max_resolution
              UpperCamelCase       			=		do_resize_and_center_crop
              UpperCamelCase       			=		size
              UpperCamelCase       			=		crop_pct
              UpperCamelCase       			=		crop_size
              UpperCamelCase       			=		do_normalize
              UpperCamelCase       			=		image_mean
              UpperCamelCase       			=		image_std






       def 						_SCREAMING_SNAKE_CASE							(	self			:				Optional[Any]      )->	str:







              """simple docstring"""
              return {
                  "size": self.size,
                  "do_resize_and_center_crop": self.do_resize_and_center_crop,
                  "crop_pct": self.crop_pct,
                  "crop_size": self.crop_size,
                  "do_normalize": self.do_normalize,
                  "image_mean": self.image_mean,
                  "image_std": self.image_std,
              }





@require_torch
@require_vision
class 	__a	(   _lowerCAmelCase     ,  unittest.TestCase						):
       UpperCamelCase_		:       List[Any]				=      PoolFormerImageProcessor if is_vision_available() else None






       def 						_SCREAMING_SNAKE_CASE							(	self			:				Optional[Any]      )->	str:







              """simple docstring"""
              UpperCamelCase       			=		PoolFormerImageProcessingTester(self      )






       @property
       def 						_SCREAMING_SNAKE_CASE							(	self			:				List[Any]      )->	Optional[Any]:







              """simple docstring"""
              return self.image_processor_tester.prepare_image_processor_dict()






       def 						_SCREAMING_SNAKE_CASE							(	self			:				Dict      )->	Optional[int]:







              """simple docstring"""
              UpperCamelCase       			=		self.image_processing_class(**self.image_processor_dict      )
              self.assertTrue(hasattr(UpperCAmelCase_							,   "do_resize_and_center_crop"      )      )
              self.assertTrue(hasattr(UpperCAmelCase_							,   "size"      )      )
              self.assertTrue(hasattr(UpperCAmelCase_							,   "crop_pct"      )      )
              self.assertTrue(hasattr(UpperCAmelCase_							,   "do_normalize"      )      )
              self.assertTrue(hasattr(UpperCAmelCase_							,   "image_mean"      )      )
              self.assertTrue(hasattr(UpperCAmelCase_							,   "image_std"      )      )






       def 						_SCREAMING_SNAKE_CASE							(	self			:				int      )->	List[Any]:







              """simple docstring"""
              UpperCamelCase       			=		self.image_processing_class.from_dict(self.image_processor_dict      )
              self.assertEqual(image_processor.size							,   {"shortest_edge": 30}      )
              self.assertEqual(image_processor.crop_size							,   {"height": 30, "width": 30}      )

              UpperCamelCase       			=		self.image_processing_class.from_dict(self.image_processor_dict							,   size=42							,   crop_size=84      )
              self.assertEqual(image_processor.size							,   {"shortest_edge": 42}      )
              self.assertEqual(image_processor.crop_size							,   {"height": 84, "width": 84}      )






       def 						_SCREAMING_SNAKE_CASE							(	self			:				Union[str, Any]      )->	Any:







              """simple docstring"""
              pass






       def 						_SCREAMING_SNAKE_CASE							(	self			:				Union[str, Any]      )->	Dict:







              """simple docstring"""
              # Initialize image_processing
              UpperCamelCase       			=		self.image_processing_class(**self.image_processor_dict      )
              # create random PIL images
              UpperCamelCase       			=		prepare_image_inputs(self.image_processor_tester							,   equal_resolution=UpperCAmelCase_      )
              for image in image_inputs:
                     self.assertIsInstance(UpperCAmelCase_							,   Image.Image      )

              # Test not batched input
              UpperCamelCase       			=		image_processing(image_inputs[0]							,   return_tensors="pt"      ).pixel_values

              self.assertEqual(
                  encoded_images.shape							,   (
                      1,
                      self.image_processor_tester.num_channels,
                      self.image_processor_tester.crop_size["height"],
                      self.image_processor_tester.crop_size["width"],
                  )							,   )

              # Test batched
              UpperCamelCase       			=		image_processing(UpperCAmelCase_							,   return_tensors="pt"      ).pixel_values
              self.assertEqual(
                  encoded_images.shape							,   (
                      self.image_processor_tester.batch_size,
                      self.image_processor_tester.num_channels,
                      self.image_processor_tester.crop_size["height"],
                      self.image_processor_tester.crop_size["width"],
                  )							,   )






       def 						_SCREAMING_SNAKE_CASE							(	self			:				Optional[int]      )->	List[str]:







              """simple docstring"""
              # Initialize image_processing
              UpperCamelCase       			=		self.image_processing_class(**self.image_processor_dict      )
              # create random numpy tensors
              UpperCamelCase       			=		prepare_image_inputs(self.image_processor_tester							,   equal_resolution=UpperCAmelCase_							,   numpify=UpperCAmelCase_      )
              for image in image_inputs:
                     self.assertIsInstance(UpperCAmelCase_							,   np.ndarray      )

              # Test not batched input
              UpperCamelCase       			=		image_processing(image_inputs[0]							,   return_tensors="pt"      ).pixel_values
              self.assertEqual(
                  encoded_images.shape							,   (
                      1,
                      self.image_processor_tester.num_channels,
                      self.image_processor_tester.crop_size["height"],
                      self.image_processor_tester.crop_size["width"],
                  )							,   )

              # Test batched
              UpperCamelCase       			=		image_processing(UpperCAmelCase_							,   return_tensors="pt"      ).pixel_values
              self.assertEqual(
                  encoded_images.shape							,   (
                      self.image_processor_tester.batch_size,
                      self.image_processor_tester.num_channels,
                      self.image_processor_tester.crop_size["height"],
                      self.image_processor_tester.crop_size["width"],
                  )							,   )






       def 						_SCREAMING_SNAKE_CASE							(	self			:				str      )->	str:







              """simple docstring"""
              # Initialize image_processing
              UpperCamelCase       			=		self.image_processing_class(**self.image_processor_dict      )
              # create random PyTorch tensors
              UpperCamelCase       			=		prepare_image_inputs(self.image_processor_tester							,   equal_resolution=UpperCAmelCase_							,   torchify=UpperCAmelCase_      )
              for image in image_inputs:
                     self.assertIsInstance(UpperCAmelCase_							,   torch.Tensor      )

              # Test not batched input
              UpperCamelCase       			=		image_processing(image_inputs[0]							,   return_tensors="pt"      ).pixel_values
              self.assertEqual(
                  encoded_images.shape							,   (
                      1,
                      self.image_processor_tester.num_channels,
                      self.image_processor_tester.crop_size["height"],
                      self.image_processor_tester.crop_size["width"],
                  )							,   )

              # Test batched
              UpperCamelCase       			=		image_processing(UpperCAmelCase_							,   return_tensors="pt"      ).pixel_values
              self.assertEqual(
                  encoded_images.shape							,   (
                      self.image_processor_tester.batch_size,
                      self.image_processor_tester.num_channels,
                      self.image_processor_tester.crop_size["height"],
                      self.image_processor_tester.crop_size["width"],
                  )							,   )





