





import copy
import inspect
import unittest

import numpy as np
from huggingface_hub import hf_hub_download

from transformers import TimesformerConfig
from transformers.models.auto import get_values
from transformers.testing_utils import require_torch, require_vision, slow, torch_device
from transformers.utils import cached_property, is_torch_available, is_vision_available

from ...test_configuration_common import ConfigTester
from ...test_modeling_common import ModelTesterMixin, floats_tensor, ids_tensor
from ...test_pipeline_mixin import PipelineTesterMixin


if is_torch_available():
     import torch
     from torch import nn

     from transformers import (
         MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING,
         TimesformerForVideoClassification,
         TimesformerModel,
     )
     from transformers.models.timesformer.modeling_timesformer import TIMESFORMER_PRETRAINED_MODEL_ARCHIVE_LIST


if is_vision_available():
     from transformers import VideoMAEImageProcessor



class    _SCREAMING_SNAKE_CASE						:







 '''simple docstring'''

 def __init__(self				:   Dict       , UpperCAmelCase_				:   str       , UpperCAmelCase_				:   Optional[Any]=13       , UpperCAmelCase_				:   Optional[int]=10       , UpperCAmelCase_				:   Union[str, Any]=3       , UpperCAmelCase_				:   Union[str, Any]=2       , UpperCAmelCase_				:   str=2       , UpperCAmelCase_				:   Union[str, Any]=True       , UpperCAmelCase_				:   Tuple=True       , UpperCAmelCase_				:   Any=32       , UpperCAmelCase_				:   str=5       , UpperCAmelCase_				:   int=4       , UpperCAmelCase_				:   int=37       , UpperCAmelCase_				:   str="gelu"       , UpperCAmelCase_				:   Dict=0.1       , UpperCAmelCase_				:   Optional[int]=0.1       , UpperCAmelCase_				:   str=10       , UpperCAmelCase_				:   str=0.02       , UpperCAmelCase_				:   Dict="divided_space_time"       , UpperCAmelCase_				:   Optional[int]=None       , )       ->Optional[int]:



   '''simple docstring'''



   lowerCamelCase__:      int			  =parent
   lowerCamelCase__:      Any			  =batch_size
   lowerCamelCase__:      Any			  =image_size
   lowerCamelCase__:      int			  =num_channels
   lowerCamelCase__:      Optional[Any]			  =patch_size
   lowerCamelCase__:      Optional[int]			  =num_frames
   lowerCamelCase__:      int			  =is_training
   lowerCamelCase__:      List[str]			  =use_labels
   lowerCamelCase__:      Union[str, Any]			  =hidden_size
   lowerCamelCase__:      str			  =num_hidden_layers
   lowerCamelCase__:      List[Any]			  =num_attention_heads
   lowerCamelCase__:      List[str]			  =intermediate_size
   lowerCamelCase__:      Dict			  =hidden_act
   lowerCamelCase__:      List[str]			  =hidden_dropout_prob
   lowerCamelCase__:      List[str]			  =attention_probs_dropout_prob
   lowerCamelCase__:      Optional[Any]			  =attention_type
   lowerCamelCase__:      Tuple			  =initializer_range
   lowerCamelCase__:      Optional[int]			  =scope
   lowerCamelCase__:      Union[str, Any]			  =num_labels

   # in TimeSformer, the number of spatial tokens equals num_frames * num_patches per frame + 1 CLS token
   lowerCamelCase__:      Union[str, Any]			  =(image_size // patch_size) ** 2
   lowerCamelCase__:      Dict			  =(num_frames) * self.num_patches_per_frame + 1

 def 							SCREAMING_SNAKE_CASE_					(self				:   str)       ->int:



   '''simple docstring'''



   lowerCamelCase__:      int			  =floats_tensor(
       [self.batch_size, self.num_frames, self.num_channels, self.image_size, self.image_size])

   lowerCamelCase__:      Tuple			  =None
   if self.use_labels:
     lowerCamelCase__:      List[Any]			  =ids_tensor([self.batch_size]       , self.num_labels)

   lowerCamelCase__:      Any			  =self.get_config()

   return config, pixel_values, labels

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



   '''simple docstring'''



   lowerCamelCase__:      List[Any]			  =TimesformerConfig(
       image_size=self.image_size       , patch_size=self.patch_size       , num_channels=self.num_channels       , num_frames=self.num_frames       , hidden_size=self.hidden_size       , num_hidden_layers=self.num_hidden_layers       , num_attention_heads=self.num_attention_heads       , intermediate_size=self.intermediate_size       , hidden_act=self.hidden_act       , hidden_dropout_prob=self.hidden_dropout_prob       , attention_probs_dropout_prob=self.attention_probs_dropout_prob       , initializer_range=self.initializer_range       , attention_type=self.attention_type       , )
   lowerCamelCase__:      List[Any]			  =self.num_labels
   return config

 def 							SCREAMING_SNAKE_CASE_					(self				:   Optional[int]       , UpperCAmelCase_				:   Optional[int]       , UpperCAmelCase_				:   Tuple       , UpperCAmelCase_				:   List[str])       ->int:



   '''simple docstring'''



   lowerCamelCase__:      Any			  =TimesformerModel(config=UpperCAmelCase_)
   model.to(UpperCAmelCase_)
   model.eval()
   lowerCamelCase__:      Union[str, Any]			  =model(UpperCAmelCase_)
   self.parent.assertEqual(result.last_hidden_state.shape       , (self.batch_size, self.seq_length, self.hidden_size))

 def 							SCREAMING_SNAKE_CASE_					(self				:   List[str]       , UpperCAmelCase_				:   Optional[Any]       , UpperCAmelCase_				:   List[str]       , UpperCAmelCase_				:   List[str])       ->str:



   '''simple docstring'''



   lowerCamelCase__:      Union[str, Any]			  =TimesformerForVideoClassification(UpperCAmelCase_)
   model.to(UpperCAmelCase_)
   model.eval()

   lowerCamelCase__:      Optional[int]			  =model(UpperCAmelCase_)

   # verify the logits shape
   lowerCamelCase__:      int			  =torch.Size((self.batch_size, self.num_labels))
   self.parent.assertEqual(result.logits.shape       , UpperCAmelCase_)







 def 							SCREAMING_SNAKE_CASE_					(self				:   int)       ->Dict:



   '''simple docstring'''



   lowerCamelCase__:      List[Any]			  =self.prepare_config_and_inputs()
   lowerCamelCase__  ,					lowerCamelCase__  ,					lowerCamelCase__:      List[Any]			  =config_and_inputs
   lowerCamelCase__:      Any			  ={"pixel_values": pixel_values}
   return config, inputs_dict



@require_torch
class    _SCREAMING_SNAKE_CASE						(	__SCREAMING_SNAKE_CASE    ,							__SCREAMING_SNAKE_CASE    ,							unittest.TestCase    ):







 '''simple docstring'''
 lowercase_		=			(TimesformerModel, TimesformerForVideoClassification) if is_torch_available() else ()
 lowercase_		=			(
     {"feature-extraction": TimesformerModel, "video-classification": TimesformerForVideoClassification}
     if is_torch_available()
     else {}
 )

 lowercase_		=			False
 lowercase_		=			False
 lowercase_		=			False
 lowercase_		=			False

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



   '''simple docstring'''



   lowerCamelCase__:      str			  =TimesformerModelTester(self)
   lowerCamelCase__:      List[str]			  =ConfigTester(
       self       , config_class=UpperCAmelCase_       , has_text_modality=UpperCAmelCase_       , hidden_size=37)

 def 							SCREAMING_SNAKE_CASE_					(self				:   Optional[Any]       , UpperCAmelCase_				:   str       , UpperCAmelCase_				:   str       , UpperCAmelCase_				:   Any=False)       ->Optional[Any]:



   '''simple docstring'''



   lowerCamelCase__:      List[str]			  =copy.deepcopy(UpperCAmelCase_)

   if return_labels:
     if model_class in get_values(UpperCAmelCase_):
       lowerCamelCase__:      str			  =torch.zeros(
           self.model_tester.batch_size       , dtype=torch.long       , device=UpperCAmelCase_)

   return inputs_dict

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



   '''simple docstring'''



   self.config_tester.run_common_tests()

 @unittest.skip(reason="TimeSformer does not use inputs_embeds")
 def 							SCREAMING_SNAKE_CASE_					(self				:   int)       ->List[str]:



   '''simple docstring'''



   pass

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



   '''simple docstring'''



   lowerCamelCase__  ,					lowerCamelCase__:      str			  =self.model_tester.prepare_config_and_inputs_for_common()

   for model_class in self.all_model_classes:
     lowerCamelCase__:      Any			  =model_class(UpperCAmelCase_)
     self.assertIsInstance(model.get_input_embeddings()       , (nn.Module))
     lowerCamelCase__:      List[Any]			  =model.get_output_embeddings()
     self.assertTrue(x is None or isinstance(UpperCAmelCase_       , nn.Linear))

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



   '''simple docstring'''



   lowerCamelCase__  ,					lowerCamelCase__:      List[str]			  =self.model_tester.prepare_config_and_inputs_for_common()

   for model_class in self.all_model_classes:
     lowerCamelCase__:      Optional[int]			  =model_class(UpperCAmelCase_)
     lowerCamelCase__:      Optional[int]			  =inspect.signature(model.forward)
     # signature.parameters is an OrderedDict => so arg_names order is deterministic
     lowerCamelCase__:      Any			  =[*signature.parameters.keys()]

     lowerCamelCase__:      Any			  =["pixel_values"]
     self.assertListEqual(arg_names[:1]       , UpperCAmelCase_)

 def 							SCREAMING_SNAKE_CASE_					(self				:   Optional[int])       ->Union[str, Any]:



   '''simple docstring'''



   lowerCamelCase__:      List[Any]			  =self.model_tester.prepare_config_and_inputs()
   self.model_tester.create_and_check_model(*UpperCAmelCase_)

 def 							SCREAMING_SNAKE_CASE_					(self				:   Any)       ->Any:



   '''simple docstring'''



   lowerCamelCase__:      Dict			  =self.model_tester.prepare_config_and_inputs()
   self.model_tester.create_and_check_for_video_classification(*UpperCAmelCase_)

 @slow
 def 							SCREAMING_SNAKE_CASE_					(self				:   List[str])       ->Union[str, Any]:



   '''simple docstring'''



   for model_name in TIMESFORMER_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
     lowerCamelCase__:      Union[str, Any]			  =TimesformerModel.from_pretrained(UpperCAmelCase_)
     self.assertIsNotNone(UpperCAmelCase_)

 def 							SCREAMING_SNAKE_CASE_					(self				:   str)       ->Any:



   '''simple docstring'''



   if not self.has_attentions:
     pass

   else:
     lowerCamelCase__  ,					lowerCamelCase__:      Any			  =self.model_tester.prepare_config_and_inputs_for_common()
     lowerCamelCase__:      Tuple			  =True

     for model_class in self.all_model_classes:
       lowerCamelCase__:      List[str]			  =self.model_tester.seq_length
       lowerCamelCase__:      Union[str, Any]			  =self.model_tester.num_frames

       lowerCamelCase__:      List[Any]			  =True
       lowerCamelCase__:      str			  =False
       lowerCamelCase__:      List[Any]			  =True
       lowerCamelCase__:      Union[str, Any]			  =model_class(UpperCAmelCase_)
       model.to(UpperCAmelCase_)
       model.eval()
       with torch.no_grad():
         lowerCamelCase__:      int			  =model(**self._prepare_for_class(UpperCAmelCase_       , UpperCAmelCase_))
       lowerCamelCase__:      str			  =outputs.attentions
       self.assertEqual(len(UpperCAmelCase_)       , self.model_tester.num_hidden_layers)

       # check that output_attentions also work using config
       del inputs_dict["output_attentions"]
       lowerCamelCase__:      List[Any]			  =True
       lowerCamelCase__:      str			  =model_class(UpperCAmelCase_)
       model.to(UpperCAmelCase_)
       model.eval()
       with torch.no_grad():
         lowerCamelCase__:      str			  =model(**self._prepare_for_class(UpperCAmelCase_       , UpperCAmelCase_))
       lowerCamelCase__:      Optional[Any]			  =outputs.attentions
       self.assertEqual(len(UpperCAmelCase_)       , self.model_tester.num_hidden_layers)

       # attentions has shape (batch_size x num_frames) x num_heads x (num_patches per frame + 1) x (num_patches per frame + 1)
       self.assertListEqual(
           list(attentions[0].shape[-3:])       , [self.model_tester.num_attention_heads, seq_len // num_frames + 1, seq_len // num_frames + 1]       , )
       lowerCamelCase__:      str			  =len(UpperCAmelCase_)

       # Check attention is always last and order is fine
       lowerCamelCase__:      Dict			  =True
       lowerCamelCase__:      Union[str, Any]			  =True
       lowerCamelCase__:      Optional[Any]			  =model_class(UpperCAmelCase_)
       model.to(UpperCAmelCase_)
       model.eval()
       with torch.no_grad():
         lowerCamelCase__:      Optional[Any]			  =model(**self._prepare_for_class(UpperCAmelCase_       , UpperCAmelCase_))

       self.assertEqual(out_len + 1       , len(UpperCAmelCase_))

       lowerCamelCase__:      Optional[int]			  =outputs.attentions

       self.assertEqual(len(UpperCAmelCase_)       , self.model_tester.num_hidden_layers)

       # attentions has shape (batch_size x num_frames) x num_heads x (num_patches per frame + 1) x (num_patches per frame + 1)
       self.assertListEqual(
           list(self_attentions[0].shape[-3:])       , [self.model_tester.num_attention_heads, seq_len // num_frames + 1, seq_len // num_frames + 1]       , )







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



   '''simple docstring'''



   def check_hidden_states_output(UpperCAmelCase_				:   Union[str, Any]       , UpperCAmelCase_				:   Union[str, Any]       , UpperCAmelCase_				:   str):
     lowerCamelCase__:      str			  =model_class(UpperCAmelCase_)
     model.to(UpperCAmelCase_)
     model.eval()

     with torch.no_grad():
       lowerCamelCase__:      Tuple			  =model(**self._prepare_for_class(UpperCAmelCase_       , UpperCAmelCase_))

     lowerCamelCase__:      Union[str, Any]			  =outputs.hidden_states
     lowerCamelCase__:      Optional[Any]			  =self.model_tester.num_hidden_layers + 1
     self.assertEqual(len(UpperCAmelCase_)       , UpperCAmelCase_)

     lowerCamelCase__:      List[str]			  =self.model_tester.seq_length

     self.assertListEqual(
         list(hidden_states[0].shape[-2:])       , [seq_length, self.model_tester.hidden_size]       , )

   lowerCamelCase__  ,					lowerCamelCase__:      Optional[Any]			  =self.model_tester.prepare_config_and_inputs_for_common()

   for model_class in self.all_model_classes:
     lowerCamelCase__:      str			  =True
     check_hidden_states_output(UpperCAmelCase_       , UpperCAmelCase_       , UpperCAmelCase_)

     # check that output_hidden_states also work using config
     del inputs_dict["output_hidden_states"]
     lowerCamelCase__:      List[str]			  =True

     check_hidden_states_output(UpperCAmelCase_       , UpperCAmelCase_       , UpperCAmelCase_)





def      lowerCAmelCase_ (       )     ->		int:







  """simple docstring"""





  lowerCamelCase__:      List[str]			  =hf_hub_download(
      repo_id="hf-internal-testing/spaghetti-video"	,    filename="eating_spaghetti.npy"	,    repo_type="dataset"		)
  lowerCamelCase__:      List[str]			  =np.load(__a		)
  return list(__a		)






@require_torch
@require_vision
class    _SCREAMING_SNAKE_CASE						(	unittest.TestCase    ):







 '''simple docstring'''

 @cached_property
 def 							SCREAMING_SNAKE_CASE_					(self				:   int)       ->List[Any]:



   '''simple docstring'''



   return (
       VideoMAEImageProcessor(image_mean=[0.5, 0.5, 0.5]       , image_std=[0.5, 0.5, 0.5])
       if is_vision_available()
       else None
   )







 @slow
 def 							SCREAMING_SNAKE_CASE_					(self				:   Any)       ->Tuple:



   '''simple docstring'''



   lowerCamelCase__:      Optional[int]			  =TimesformerForVideoClassification.from_pretrained("facebook/timesformer-base-finetuned-k400").to(
       UpperCAmelCase_)

   lowerCamelCase__:      Dict			  =self.default_image_processor
   lowerCamelCase__:      List[Any]			  =prepare_video()
   lowerCamelCase__:      Optional[Any]			  =image_processor(video[:8]       , return_tensors="pt").to(UpperCAmelCase_)

   # forward pass
   with torch.no_grad():
     lowerCamelCase__:      int			  =model(**UpperCAmelCase_)

   # verify the logits
   lowerCamelCase__:      List[str]			  =torch.Size((1, 400))
   self.assertEqual(outputs.logits.shape       , UpperCAmelCase_)

   lowerCamelCase__:      Optional[Any]			  =torch.tensor([-0.3016, -0.7713, -0.4205]).to(UpperCAmelCase_)

   self.assertTrue(torch.allclose(outputs.logits[0, :3]       , UpperCAmelCase_       , atol=1E-4))





"""simple docstring"""



import unittest

from transformers import JukeboxTokenizer
from transformers.testing_utils import require_torch







class _lowerCAmelCase				(      unittest.TestCase	):
   __UpperCAmelCase :       Union[str, Any]							  =  JukeboxTokenizer
   __UpperCAmelCase :       Union[str, Any]							  =  {
       '''artist''': '''Zac Brown Band''',
       '''genres''': '''Country''',
       '''lyrics''': '''I met a traveller from an antique land,
        Who said "Two vast and trunkless legs of stone
        Stand in the desert. . . . Near them, on the sand,
        Half sunk a shattered visage lies, whose frown,
        And wrinkled lip, and sneer of cold command,
        Tell that its sculptor well those passions read
        Which yet survive, stamped on these lifeless things,
        The hand that mocked them, and the heart that fed;
        And on the pedestal, these words appear:
        My name is Ozymandias, King of Kings;
        Look on my Works, ye Mighty, and despair!
        Nothing beside remains. Round the decay
        Of that colossal Wreck, boundless and bare
        The lone and level sands stretch far away
        ''',
   }







   @require_torch
   def  lowerCamelCase		(	self						)	->		int:

       '''simple docstring'''




       import torch

       snake_case    :      Any      					=    JukeboxTokenizer.from_pretrained("openai/jukebox-1b-lyrics"						)
       snake_case    :      Optional[Any]      					=    tokenizer(**self.metas						)["input_ids"]
       # fmt: off
       snake_case    :      Optional[int]      					=    [
           torch.tensor([[
               0, 0, 0, 7169, 507, 9, 76, 39, 31, 46, 76, 27,
               76, 46, 44, 27, 48, 31, 38, 38, 31, 44, 76, 32,
               44, 41, 39, 76, 27, 40, 76, 27, 40, 46, 35, 43,
               47, 31, 76, 38, 27, 40, 30, 64, 78, 76, 76, 76,
               76, 76, 76, 76, 76, 23, 34, 41, 76, 45, 27, 35,
               30, 76, 71, 20, 49, 41, 76, 48, 27, 45, 46, 76,
               27, 40, 30, 76, 46, 44, 47, 40, 37, 38, 31, 45,
               45, 76, 38, 31, 33, 45, 76, 41, 32, 76, 45, 46,
               41, 40, 31, 78, 76, 76, 76, 76, 76, 76, 76, 76,
               19, 46, 27, 40, 30, 76, 35, 40, 76, 46, 34, 31,
               76, 30, 31, 45, 31, 44, 46, 63, 76, 63, 76, 63,
               76, 63, 76, 14, 31, 27, 44, 76, 46, 34, 31, 39,
               64, 76, 41, 40, 76, 46, 34, 31, 76, 45, 27, 40,
               30, 64, 78, 76, 76, 76, 76, 76, 76, 76, 76, 8,
               27, 38, 32, 76, 45, 47, 40, 37, 76, 27, 76, 45,
               34, 27, 46, 46, 31, 44, 31, 30, 76, 48, 35, 45,
               27, 33, 31, 76, 38, 35, 31, 45, 64, 76, 49, 34,
               41, 45, 31, 76, 32, 44, 41, 49, 40, 64, 78, 76,
               76, 76, 76, 76, 76, 76, 76, 1, 40, 30, 76, 49,
               44, 35, 40, 37, 38, 31, 30, 76, 38, 35, 42, 64,
               76, 27, 40, 30, 76, 45, 40, 31, 31, 44, 76, 41,
               32, 76, 29, 41, 38, 30, 76, 29, 41, 39, 39, 27,
               40, 30, 64, 78, 76, 76, 76, 76, 76, 76, 76, 76,
               20, 31, 38, 38, 76, 46, 34, 27, 46, 76, 35, 46,
               45, 76, 45, 29, 47, 38, 42, 46, 41, 44, 76, 49,
               31, 38, 38, 76, 46, 34, 41, 45, 31, 76, 42, 27,
               45, 45, 35, 41, 40, 45, 76, 44, 31, 27, 30, 78,
               76, 76, 76, 76, 76, 76, 76, 76, 23, 34, 35, 29,
               34, 76, 51, 31, 46, 76, 45, 47, 44, 48, 35, 48,
               31, 64, 76, 45, 46, 27, 39, 42, 31, 30, 76, 41,
               40, 76, 46, 34, 31, 45, 31, 76, 38, 35, 32, 31,
               38, 31, 45, 45, 76, 46, 34, 35, 40, 33, 45, 64,
               78, 76, 76, 76, 76, 76, 76, 76, 76, 20, 34, 31,
               76, 34, 27, 40, 30, 76, 46, 34, 27, 46, 76, 39,
               41, 29, 37, 31, 30, 76, 46, 34, 31, 39, 64, 76,
               27, 40, 30, 76, 46, 34, 31, 76, 34, 31, 27, 44,
               46, 76, 46, 34, 27, 46, 76, 32, 31, 30, 66, 78,
               76, 76, 76, 76, 76, 76, 76, 76, 1, 40, 30, 76,
               41, 40, 76, 46, 34, 31, 76, 42, 31, 30, 31, 45,
               46, 27, 38, 64, 76, 46, 34, 31, 45, 31, 76, 49,
               41, 44, 30, 45, 76, 27, 42, 42, 31, 27, 44, 65,
               78, 76, 76, 76, 76, 76, 76, 76, 76, 13, 51, 76,
               40, 27, 39, 31, 76, 35, 45, 76, 15, 52, 51, 39,
               27, 40, 30, 35, 27, 45, 64, 76, 11, 35, 40, 33,
               76, 41, 32, 76, 11, 35, 40, 33, 45, 66, 78, 76,
               76, 76, 76, 76, 76, 76, 76, 12, 41, 41, 37, 76,
               41, 40, 76, 39, 51, 76, 23, 41, 44, 37, 45, 64,
               76, 51, 31, 76, 13, 35, 33, 34, 46, 51, 64, 76,
               27, 40, 30, 76, 30, 31, 45, 42, 27, 35, 44, 67,
               78, 76, 76, 76, 76, 76, 76, 76, 76, 14, 41, 46,
               34, 35, 40, 33, 76, 28, 31, 45, 35, 30, 31, 76,
               44, 31, 39, 27, 35, 40, 45, 63, 76, 18, 41, 47,
               40, 30, 76, 46, 34, 31, 76, 30, 31, 29, 27, 51,
               78, 76, 76, 76, 76, 76, 76, 76, 76, 15, 32, 76,
               46, 34, 27, 46, 76, 29, 41, 38, 41, 45, 45, 27,
               38, 76, 23, 44, 31, 29, 37, 64, 76, 28, 41, 47,
               40, 30, 38, 31, 45, 45, 76, 27, 40, 30, 76, 28,
               27, 44, 31, 78, 76, 76, 76, 76, 76, 76, 76, 76,
               20, 34, 31, 76, 38, 41, 40, 31, 76, 27, 40, 30,
               76, 38, 31, 48, 31, 38, 76, 45, 27, 40, 30, 45,
               76, 45, 46, 44, 31, 46, 29, 34, 76, 32, 27, 44,
               76, 27, 49, 27, 51, 78, 76, 76, 76, 76, 76, 76,
               76, 76]]						),
           torch.tensor([[0, 0, 0, 1069, 11]]						),
           torch.tensor([[0, 0, 0, 1069, 11]]						),
       ]
       # fmt: on
       self.assertTrue(torch.allclose(tokens[0]						,	EXPECTED_OUTPUT[0]						)						)
       self.assertTrue(torch.allclose(tokens[1]						,	EXPECTED_OUTPUT[1]						)						)
       self.assertTrue(torch.allclose(tokens[2]						,	EXPECTED_OUTPUT[2]						)						)







   @require_torch
   def  lowerCamelCase		(	self						)	->		Any:

       '''simple docstring'''




       import torch

       snake_case    :      Tuple      					=    JukeboxTokenizer.from_pretrained("openai/jukebox-5b-lyrics"						)
       snake_case    :      Optional[Any]      					=    tokenizer(**self.metas						)["input_ids"]
       # fmt: off
       snake_case    :      List[Any]      					=    [
           torch.tensor([[
               0, 0, 0, 1069, 11, -1, -1, -1, -1, 9, 77, 39,
               31, 46, 77, 27, 77, 46, 44, 27, 48, 31, 38, 38,
               31, 44, 77, 32, 44, 41, 39, 77, 27, 40, 77, 27,
               40, 46, 35, 43, 47, 31, 77, 38, 27, 40, 30, 64,
               79, 77, 77, 77, 77, 77, 77, 77, 77, 23, 34, 41,
               77, 45, 27, 35, 30, 77, 72, 20, 49, 41, 77, 48,
               27, 45, 46, 77, 27, 40, 30, 77, 46, 44, 47, 40,
               37, 38, 31, 45, 45, 77, 38, 31, 33, 45, 77, 41,
               32, 77, 45, 46, 41, 40, 31, 79, 77, 77, 77, 77,
               77, 77, 77, 77, 19, 46, 27, 40, 30, 77, 35, 40,
               77, 46, 34, 31, 77, 30, 31, 45, 31, 44, 46, 63,
               77, 63, 77, 63, 77, 63, 77, 14, 31, 27, 44, 77,
               46, 34, 31, 39, 64, 77, 41, 40, 77, 46, 34, 31,
               77, 45, 27, 40, 30, 64, 79, 77, 77, 77, 77, 77,
               77, 77, 77, 8, 27, 38, 32, 77, 45, 47, 40, 37,
               77, 27, 77, 45, 34, 27, 46, 46, 31, 44, 31, 30,
               77, 48, 35, 45, 27, 33, 31, 77, 38, 35, 31, 45,
               64, 77, 49, 34, 41, 45, 31, 77, 32, 44, 41, 49,
               40, 64, 79, 77, 77, 77, 77, 77, 77, 77, 77, 1,
               40, 30, 77, 49, 44, 35, 40, 37, 38, 31, 30, 77,
               38, 35, 42, 64, 77, 27, 40, 30, 77, 45, 40, 31,
               31, 44, 77, 41, 32, 77, 29, 41, 38, 30, 77, 29,
               41, 39, 39, 27, 40, 30, 64, 79, 77, 77, 77, 77,
               77, 77, 77, 77, 20, 31, 38, 38, 77, 46, 34, 27,
               46, 77, 35, 46, 45, 77, 45, 29, 47, 38, 42, 46,
               41, 44, 77, 49, 31, 38, 38, 77, 46, 34, 41, 45,
               31, 77, 42, 27, 45, 45, 35, 41, 40, 45, 77, 44,
               31, 27, 30, 79, 77, 77, 77, 77, 77, 77, 77, 77,
               23, 34, 35, 29, 34, 77, 51, 31, 46, 77, 45, 47,
               44, 48, 35, 48, 31, 64, 77, 45, 46, 27, 39, 42,
               31, 30, 77, 41, 40, 77, 46, 34, 31, 45, 31, 77,
               38, 35, 32, 31, 38, 31, 45, 45, 77, 46, 34, 35,
               40, 33, 45, 64, 79, 77, 77, 77, 77, 77, 77, 77,
               77, 20, 34, 31, 77, 34, 27, 40, 30, 77, 46, 34,
               27, 46, 77, 39, 41, 29, 37, 31, 30, 77, 46, 34,
               31, 39, 64, 77, 27, 40, 30, 77, 46, 34, 31, 77,
               34, 31, 27, 44, 46, 77, 46, 34, 27, 46, 77, 32,
               31, 30, 66, 79, 77, 77, 77, 77, 77, 77, 77, 77,
               1, 40, 30, 77, 41, 40, 77, 46, 34, 31, 77, 42,
               31, 30, 31, 45, 46, 27, 38, 64, 77, 46, 34, 31,
               45, 31, 77, 49, 41, 44, 30, 45, 77, 27, 42, 42,
               31, 27, 44, 65, 79, 77, 77, 77, 77, 77, 77, 77,
               77, 13, 51, 77, 40, 27, 39, 31, 77, 35, 45, 77,
               15, 52, 51, 39, 27, 40, 30, 35, 27, 45, 64, 77,
               11, 35, 40, 33, 77, 41, 32, 77, 11, 35, 40, 33,
               45, 66, 79, 77, 77, 77, 77, 77, 77, 77, 77, 12,
               41, 41, 37, 77, 41, 40, 77, 39, 51, 77, 23, 41,
               44, 37, 45, 64, 77, 51, 31, 77, 13, 35, 33, 34,
               46, 51, 64, 77, 27, 40, 30, 77, 30, 31, 45, 42,
               27, 35, 44, 67, 79, 77, 77, 77, 77, 77, 77, 77,
               77, 14, 41, 46, 34, 35, 40, 33, 77, 28, 31, 45,
               35, 30, 31, 77, 44, 31, 39, 27, 35, 40, 45, 63,
               77, 18, 41, 47, 40, 30, 77, 46, 34, 31, 77, 30,
               31, 29, 27, 51, 79, 77, 77, 77, 77, 77, 77, 77,
               77, 15, 32, 77, 46, 34, 27, 46, 77, 29, 41, 38,
               41, 45, 45, 27, 38, 77, 23, 44, 31, 29, 37, 64,
               77, 28, 41, 47, 40, 30, 38, 31, 45, 45, 77, 27,
               40, 30, 77, 28, 27, 44, 31, 79, 77, 77, 77, 77,
               77, 77, 77, 77, 20, 34, 31, 77, 38, 41, 40, 31,
               77, 27, 40, 30, 77, 38, 31, 48, 31, 38, 77, 45,
               27, 40, 30, 45, 77, 45, 46, 44, 31, 46, 29, 34,
               77, 32, 27, 44, 77, 27, 49, 27, 51, 79, 77, 77,
               77, 77, 77, 77, 77, 77]]						),
           torch.tensor([[0, 0, 0, 1069, 11, -1, -1, -1, -1]]						),
           torch.tensor([[0, 0, 0, 1069, 11, -1, -1, -1, -1]]						),
       ]
       # fmt: on
       self.assertTrue(torch.allclose(tokens[0]						,	EXPECTED_OUTPUT[0]						)						)
       self.assertTrue(torch.allclose(tokens[1]						,	EXPECTED_OUTPUT[1]						)						)
       self.assertTrue(torch.allclose(tokens[2]						,	EXPECTED_OUTPUT[2]						)						)





