



'''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


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






@require_sentencepiece
@require_tokenizers
class __A    (						A     ,     unittest.TestCase		):



 '''simple docstring'''







 __lowerCamelCase					: Any    = SpeechTaTokenizer
 __lowerCamelCase					: Optional[Any]    = False
 __lowerCamelCase					: int    = True



 def       a__						(self )					->  Dict:


      """simple docstring"""



      super().setUp()

      # We have a SentencePiece fixture for testing
      _a											=						SpeechTaTokenizer(A )

      _a											=						AddedToken('''<mask>'''				,     lstrip=A				,     rstrip=A )
      _a											=						mask_token
      tokenizer.add_special_tokens({'''mask_token''': mask_token} )
      tokenizer.add_tokens(['''<ctc_blank>'''] )

      tokenizer.save_pretrained(self.tmpdirname )



 def       a__						(self				,     A )					->  Any:


      """simple docstring"""



      _a											=						'''this is a test'''
      _a											=						'''this is a test'''
      return input_text, output_text



 def       a__						(self				,     A				,     A=False				,     A=20				,     A=5 )					->  Any:


      """simple docstring"""



      _a						,					_a											=						self.get_input_output_texts(A )
      _a											=						tokenizer.encode(A				,     add_special_tokens=A )
      _a											=						tokenizer.decode(A				,     clean_up_tokenization_spaces=A )
      return text, ids



 def       a__						(self )					->  List[str]:


      """simple docstring"""



      _a											=						'''<pad>'''
      _a											=						1

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



 def       a__						(self )					->  Any:


      """simple docstring"""



      _a											=						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(A )				,     81 )



 def       a__						(self )					->  Tuple:


      """simple docstring"""



      self.assertEqual(self.get_tokenizer().vocab_size				,     79 )



 def       a__						(self )					->  Optional[int]:


      """simple docstring"""



      _a											=						self.get_tokenizers(do_lower_case=A )
      for tokenizer in tokenizers:
           with self.subTest(f'''{tokenizer.__class__.__name__}''' ):
                _a											=						tokenizer.vocab_size
                _a											=						len(A )

                self.assertNotEqual(A				,     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)

                _a											=						['''aaaaa bbbbbb''', '''cccccccccdddddddd''']
                _a											=						tokenizer.add_tokens(A )
                _a											=						tokenizer.vocab_size
                _a											=						len(A )

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

                _a											=						tokenizer.encode('''aaaaa bbbbbb low cccccccccdddddddd l'''				,     add_special_tokens=A )

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

                _a											=						{'''eos_token''': '''>>>>|||<||<<|<<''', '''pad_token''': '''<<<<<|||>|>>>>|>'''}
                _a											=						tokenizer.add_special_tokens(A )
                _a											=						tokenizer.vocab_size
                _a											=						len(A )

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

                _a											=						tokenizer.encode(
                    '''>>>>|||<||<<|<< aaaaabbbbbb low cccccccccdddddddd <<<<<|||>|>>>>|> l'''				,     add_special_tokens=A )

                self.assertGreaterEqual(len(A )				,     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       a__						(self )					->  Optional[Any]:


      """simple docstring"""



      pass



 def       a__						(self )					->  int:


      """simple docstring"""



      pass



 def       a__						(self )					->  List[str]:


      """simple docstring"""



      _a											=						self.get_tokenizer()

      _a											=						tokenizer.tokenize('''This is a test''' )
      # fmt: off
      self.assertListEqual(A				,     [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(A )				,     [4, 32, 11, 10, 12, 4, 10, 12, 4, 7, 4, 6, 5, 12, 6]				,     )

      _a											=						tokenizer.tokenize('''I was born in 92000, and this is falsé.''' )
      self.assertListEqual(
          A				,     [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''', '''é''', '''.'''] )

      _a											=						tokenizer.convert_tokens_to_ids(A )
      # fmt: off
      self.assertListEqual(A				,     [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

      _a											=						tokenizer.convert_ids_to_tokens(A )
      self.assertListEqual(
          A				,     [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       a__						(self )					->  Optional[int]:


      """simple docstring"""



      _a											=						[
          '''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
      _a											=						{
          '''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=A				,     model_name='''microsoft/speecht5_asr'''				,     revision='''c5ef64c71905caeccde0e4462ef3f9077224c524'''				,     sequences=A				,     )








'''simple docstring'''





import unittest

import numpy as np
import torch
from torch import nn
from transformers import (
    CLIPImageProcessor,
    CLIPTextConfig,
    CLIPTextModelWithProjection,
    CLIPTokenizer,
    CLIPVisionConfig,
    CLIPVisionModelWithProjection,
)

from diffusers import KandinskyVaaPriorPipeline, PriorTransformer, UnCLIPScheduler
from diffusers.utils import torch_device
from diffusers.utils.testing_utils import enable_full_determinism, skip_mps

from ..test_pipelines_common import PipelineTesterMixin


enable_full_determinism()






class __A    (						A     ,     unittest.TestCase		):



 '''simple docstring'''







 __lowerCamelCase					: Dict    = KandinskyVaaPriorPipeline
 __lowerCamelCase					: List[str]    = ['prompt']
 __lowerCamelCase					: str    = ['prompt', 'negative_prompt']
 __lowerCamelCase					: Union[str, Any]    = [
     'num_images_per_prompt',
     'generator',
     'num_inference_steps',
     'latents',
     'negative_prompt',
     'guidance_scale',
     'output_type',
     'return_dict',
 ]
 __lowerCamelCase					: Union[str, Any]    = False



 @property
 def       a__						(self )					->  Tuple:


      """simple docstring"""



      return 32



 @property
 def       a__						(self )					->  int:


      """simple docstring"""



      return 32



 @property
 def       a__						(self )					->  int:


      """simple docstring"""



      return self.time_input_dim



 @property
 def       a__						(self )					->  Any:


      """simple docstring"""



      return self.time_input_dim * 4



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


      """simple docstring"""



      return 100



 @property
 def       a__						(self )					->  str:


      """simple docstring"""



      _a											=						CLIPTokenizer.from_pretrained('''hf-internal-testing/tiny-random-clip''' )
      return tokenizer



 @property
 def       a__						(self )					->  int:


      """simple docstring"""



      torch.manual_seed(0 )
      _a											=						CLIPTextConfig(
          bos_token_id=0				,     eos_token_id=2				,     hidden_size=self.text_embedder_hidden_size				,     projection_dim=self.text_embedder_hidden_size				,     intermediate_size=37				,     layer_norm_eps=1E-05				,     num_attention_heads=4				,     num_hidden_layers=5				,     pad_token_id=1				,     vocab_size=1_000				,     )
      return CLIPTextModelWithProjection(A )



 @property
 def       a__						(self )					->  List[str]:


      """simple docstring"""



      torch.manual_seed(0 )

      _a											=						{
          '''num_attention_heads''': 2,
          '''attention_head_dim''': 12,
          '''embedding_dim''': self.text_embedder_hidden_size,
          '''num_layers''': 1,
      }

      _a											=						PriorTransformer(**A )
      # clip_std and clip_mean is initialized to be 0 so PriorTransformer.post_process_latents will always return 0 - set clip_std to be 1 so it won't return 0
      _a											=						nn.Parameter(torch.ones(model.clip_std.shape ) )
      return model



 @property
 def       a__						(self )					->  str:


      """simple docstring"""



      torch.manual_seed(0 )
      _a											=						CLIPVisionConfig(
          hidden_size=self.text_embedder_hidden_size				,     image_size=224				,     projection_dim=self.text_embedder_hidden_size				,     intermediate_size=37				,     num_attention_heads=4				,     num_channels=3				,     num_hidden_layers=5				,     patch_size=14				,     )

      _a											=						CLIPVisionModelWithProjection(A )
      return model



 @property
 def       a__						(self )					->  Union[str, Any]:


      """simple docstring"""



      _a											=						CLIPImageProcessor(
          crop_size=224				,     do_center_crop=A				,     do_normalize=A				,     do_resize=A				,     image_mean=[0.48145466, 0.4578275, 0.40821073]				,     image_std=[0.26862954, 0.26130258, 0.27577711]				,     resample=3				,     size=224				,     )

      return image_processor



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


      """simple docstring"""



      _a											=						self.dummy_prior
      _a											=						self.dummy_image_encoder
      _a											=						self.dummy_text_encoder
      _a											=						self.dummy_tokenizer
      _a											=						self.dummy_image_processor

      _a											=						UnCLIPScheduler(
          variance_type='''fixed_small_log'''				,     prediction_type='''sample'''				,     num_train_timesteps=1_000				,     clip_sample=A				,     clip_sample_range=10.0				,     )

      _a											=						{
          '''prior''': prior,
          '''image_encoder''': image_encoder,
          '''text_encoder''': text_encoder,
          '''tokenizer''': tokenizer,
          '''scheduler''': scheduler,
          '''image_processor''': image_processor,
      }

      return components



 def       a__						(self				,     A				,     A=0 )					->  Optional[int]:


      """simple docstring"""



      if str(A ).startswith('''mps''' ):
           _a											=						torch.manual_seed(A )
      else:
           _a											=						torch.Generator(device=A ).manual_seed(A )
      _a											=						{
          '''prompt''': '''horse''',
          '''generator''': generator,
          '''guidance_scale''': 4.0,
          '''num_inference_steps''': 2,
          '''output_type''': '''np''',
      }
      return inputs



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


      """simple docstring"""



      _a											=						'''cpu'''

      _a											=						self.get_dummy_components()

      _a											=						self.pipeline_class(**A )
      _a											=						pipe.to(A )

      pipe.set_progress_bar_config(disable=A )

      _a											=						pipe(**self.get_dummy_inputs(A ) )
      _a											=						output.image_embeds

      _a											=						pipe(
          **self.get_dummy_inputs(A )				,     return_dict=A				,     )[0]

      _a											=						image[0, -10:]
      _a											=						image_from_tuple[0, -10:]

      assert image.shape == (1, 32)

      _a											=						np.array(
          [-0.0532, 1.7120, 0.3656, -1.0852, -0.8946, -1.1756, 0.4348, 0.2482, 0.5146, -0.1156] )

      assert np.abs(image_slice.flatten() - expected_slice ).max() < 1E-2
      assert np.abs(image_from_tuple_slice.flatten() - expected_slice ).max() < 1E-2



 @skip_mps
 def       a__						(self )					->  Optional[int]:


      """simple docstring"""



      _a											=						torch_device == '''cpu'''
      _a											=						True
      _a											=						False

      self._test_inference_batch_single_identical(
          test_max_difference=A				,     relax_max_difference=A				,     test_mean_pixel_difference=A				,     )



 @skip_mps
 def       a__						(self )					->  List[str]:


      """simple docstring"""



      _a											=						torch_device == '''cpu'''
      _a											=						False

      self._test_attention_slicing_forward_pass(
          test_max_difference=A				,     test_mean_pixel_difference=A				,     )



