code: 
  """simple docstring"""
  import unittest
  from unittest import skip
  
  from transformers import is_torch_available
  from transformers.testing_utils import require_torch, slow
  from transformers.trainer_utils import set_seed
  
  
  if is_torch_available():
      import torch
  
      from transformers import JukeboxModel, JukeboxPrior, JukeboxTokenizer
  
  @require_torch
  class 			lowerCamelCase  (					unittest.TestCase      ):
  
  
    '''simple docstring'''
  
  
  
  
  
  
  
    SCREAMING_SNAKE_CASE							=     (JukeboxModel,) if is_torch_available() else ()
    SCREAMING_SNAKE_CASE							=     "openai/jukebox-1b-lyrics"
    SCREAMING_SNAKE_CASE							=     {
        "artist": "Zac Brown Band",
        "genres": "Country",
        "lyrics": "I met a traveller from an antique land,\n    Who said \"Two vast and trunkless legs of stone\n    Stand in the desert. . . . Near them, on the sand,\n    Half sunk a shattered visage lies, whose frown,\n    And wrinkled lip, and sneer of cold command,\n    Tell that its sculptor well those passions read\n    Which yet survive, stamped on these lifeless things,\n    The hand that mocked them, and the heart that fed;\n    And on the pedestal, these words appear:\n    My name is Ozymandias, King of Kings;\n    Look on my Works, ye Mighty, and despair!\n    Nothing beside remains. Round the decay\n    Of that colossal Wreck, boundless and bare\n    The lone and level sands stretch far away\n    ",
    }
    # fmt: off
    SCREAMING_SNAKE_CASE							=     [
        1_8_6_4, 1_5_3_6, 1_2_1_3, 1_8_7_0, 1_3_5_7, 1_5_3_6, 5_1_9, 8_8_0, 1_3_2_3, 7_8_9, 1_0_8_2, 5_3_4,
        1_0_0_0, 1_4_4_5, 1_1_0_5, 1_1_3_0, 9_6_7, 5_1_5, 1_4_3_4, 1_6_2_0, 5_3_4, 1_4_9_5, 2_8_3, 1_4_4_5,
        3_3_3, 1_3_0_7, 5_3_9, 1_6_3_1, 1_5_2_8, 3_7_5, 1_4_3_4, 6_7_3, 6_2_7, 7_1_0, 7_7_8, 1_8_8_3,
        1_4_0_5, 1_2_7_6, 1_4_5_5, 1_2_2_8
    ]
  
    SCREAMING_SNAKE_CASE							=     [
        1_4_8_9, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3,
        6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3,
        6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3,
        6_5_3, 6_5_3, 6_5_3, 6_5_3
    ]
  
    SCREAMING_SNAKE_CASE							=     [
        1_1_2_5, 1_7_5_1, 6_9_7, 1_7_7_6, 1_1_4_1, 1_4_7_6, 3_9_1, 6_9_7, 1_1_2_5, 6_8_4, 8_6_7, 4_1_6,
        8_4_4, 1_3_7_2, 1_2_7_4, 7_1_7, 1_2_7_4, 8_4_4, 1_2_9_9, 1_4_1_9, 6_9_7, 1_3_7_0, 3_1_7, 1_1_2_5,
        1_9_1, 1_4_4_0, 1_3_7_0, 1_4_4_0, 1_3_7_0, 2_8_2, 1_6_2_1, 1_3_7_0, 3_6_8, 3_4_9, 8_6_7, 1_8_7_2,
        1_2_6_2, 8_6_9, 1_7_2_8, 7_4_7
    ]
    SCREAMING_SNAKE_CASE							=     [
        4_1_6, 4_1_6, 1_1_2_5, 1_1_2_5, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6,
        4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6,
        4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6,
        4_1_6, 4_1_6, 4_1_6, 4_1_6
    ]
  
    SCREAMING_SNAKE_CASE							=     [
        1_7_5_5, 8_4_2, 3_0_7, 1_8_4_3, 1_0_2_2, 1_3_9_5, 2_3_4, 1_5_5_4, 8_0_6, 7_3_9, 1_0_2_2, 4_4_2,
        6_1_6, 5_5_6, 2_6_8, 1_4_9_9, 9_3_3, 4_5_7, 1_4_4_0, 1_8_3_7, 7_5_5, 9_8_5, 3_0_8, 9_0_2,
        2_9_3, 1_4_4_3, 1_6_7_1, 1_1_4_1, 1_5_3_3, 5_5_5, 1_5_6_2, 1_0_6_1, 2_8_7, 4_1_7, 1_0_2_2, 2_0_0_8,
        1_1_8_6, 1_0_1_5, 1_7_7_7, 2_6_8
    ]
    SCREAMING_SNAKE_CASE							=     [
        8_5_4, 8_4_2, 1_3_5_3, 1_1_4, 1_3_5_3, 8_4_2, 1_8_5, 8_4_2, 1_8_5, 1_1_4, 5_9_1, 8_4_2,
        1_8_5, 4_1_7, 1_8_5, 8_4_2, 3_0_7, 8_4_2, 5_9_1, 8_4_2, 1_8_5, 8_4_2, 3_0_7, 8_4_2,
        5_9_1, 8_4_2, 1_3_5_3, 8_4_2, 1_8_5, 8_4_2, 5_9_1, 8_4_2, 5_9_1, 1_1_4, 5_9_1, 8_4_2,
        1_8_5, 8_4_2, 5_9_1, 8_9
    ]
  
    SCREAMING_SNAKE_CASE							=     [1_0_5_8_3_0_4, 0, 7_8_6_4_3_2, 7_1_6_9, 5_0_7, 7_6, 2_7, 4_0, 3_0, 7_6]
  
    SCREAMING_SNAKE_CASE							=     [
        3_9_0, 1_1_6_0, 1_0_0_2, 1_9_0_7, 1_7_8_8, 1_7_8_8, 1_7_8_8, 1_9_0_7, 1_0_0_2, 1_0_0_2, 1_8_5_4, 1_0_0_2,
        1_0_0_2, 1_0_0_2, 1_0_0_2, 1_0_0_2, 1_0_0_2, 1_1_6_0, 1_1_6_0, 1_6_0_6, 5_9_6, 5_9_6, 1_1_6_0, 1_0_0_2,
        1_5_1_6, 5_9_6, 1_0_0_2, 1_0_0_2, 1_0_0_2, 1_9_0_7, 1_7_8_8, 1_7_8_8, 1_7_8_8, 1_8_5_4, 1_7_8_8, 1_9_0_7,
        1_9_0_7, 1_7_8_8, 5_9_6, 1_6_2_6
    ]
    SCREAMING_SNAKE_CASE							=     [
        1_2_3_6, 1_6_6_8, 1_4_8_4, 1_9_2_0, 1_8_4_8, 1_4_0_9, 1_3_9, 8_6_4, 1_8_2_8, 1_2_7_2, 1_5_9_9, 8_2_4,
        1_6_7_2, 1_3_9, 5_5_5, 1_4_8_4, 8_2_4, 1_9_2_0, 5_5_5, 5_9_6, 1_5_7_9, 1_5_9_9, 1_2_3_1, 1_5_9_9,
        1_6_3_7, 1_4_0_7, 2_1_2, 8_2_4, 1_5_9_9, 1_1_6, 1_4_3_3, 8_2_4, 2_5_8, 1_5_9_9, 1_4_3_3, 1_8_9_5,
        1_0_6_3, 1_4_3_3, 1_4_3_3, 1_5_9_9
    ]
    SCREAMING_SNAKE_CASE							=     [
        1_6_8_4, 1_8_7_3, 1_1_1_9, 1_1_8_9, 3_9_5, 6_1_1, 1_9_0_1, 9_7_2, 8_9_0, 1_3_3_7, 1_3_9_2, 1_9_2_7,
        9_6, 9_7_2, 6_7_2, 7_8_0, 1_1_1_9, 8_9_0, 1_5_8, 7_7_1, 1_0_7_3, 1_9_2_7, 3_5_3, 1_3_3_1,
        1_2_6_9, 1_4_5_9, 1_3_3_3, 1_6_4_5, 8_1_2, 1_5_7_7, 1_3_3_7, 6_0_6, 3_5_3, 9_8_1, 1_4_6_6, 6_1_9,
        1_9_7, 3_9_1, 3_0_2, 1_9_3_0
    ]
    SCREAMING_SNAKE_CASE							=     [
        3_9_0, 1_1_6_0, 1_0_0_2, 1_9_0_7, 1_7_8_8, 1_7_8_8, 1_7_8_8, 1_9_0_7, 1_0_0_2, 1_0_0_2, 1_8_5_4, 1_0_0_2,
        1_0_0_2, 1_0_0_2, 1_0_0_2, 1_0_0_2, 1_0_0_2, 1_1_6_0, 1_1_6_0, 1_6_0_6, 5_9_6, 5_9_6, 1_1_6_0, 1_0_0_2,
        1_5_1_6, 5_9_6, 1_0_0_2, 1_0_0_2, 1_0_0_2, 1_9_0_7, 1_7_8_8, 1_7_8_8, 1_7_8_8, 1_8_5_4, 1_7_8_8, 1_9_0_7,
        1_9_0_7, 1_7_8_8, 5_9_6, 1_6_2_6
    ]
    SCREAMING_SNAKE_CASE							=     [
        -0.04_92, -0.05_24, -0.05_65, -0.06_40, -0.06_86, -0.06_84, -0.06_77, -0.06_64,
        -0.06_05, -0.04_90, -0.03_30, -0.01_68, -0.00_83, -0.00_75, -0.00_51, 0.00_25,
        0.01_36, 0.02_61, 0.03_86, 0.04_97, 0.05_80, 0.05_99, 0.05_83, 0.06_14,
        0.07_40, 0.08_89, 0.10_23, 0.11_62, 0.12_11, 0.12_12, 0.12_51, 0.13_36,
        0.15_02, 0.16_86, 0.18_83, 0.21_48, 0.23_63, 0.24_58, 0.25_07, 0.25_31
    ]
    SCREAMING_SNAKE_CASE							=     [
        0.02_56, -0.05_44, 0.16_00, -0.00_32, 0.10_66, 0.08_25, -0.00_13, 0.34_40,
        0.02_10, 0.04_12, -0.17_77, -0.08_92, -0.01_64, 0.02_85, -0.06_13, -0.06_17,
        -0.01_37, -0.02_01, -0.01_75, 0.02_15, -0.06_27, 0.05_20, -0.07_30, 0.09_70,
        -0.01_00, 0.04_42, -0.05_86, 0.02_07, -0.00_15, -0.00_82
    ]
    SCREAMING_SNAKE_CASE							=     [
        0.04_15, 0.08_77, 0.00_22, -0.00_55, 0.07_51, 0.03_34, 0.03_24, -0.00_68,
        0.00_11, 0.00_17, -0.06_76, 0.06_55, -0.01_43, 0.03_99, 0.03_03, 0.07_43,
        -0.01_68, -0.03_94, -0.11_13, 0.01_24, 0.04_42, 0.02_67, -0.00_03, -0.15_36,
        -0.01_16, -0.18_37, -0.01_80, -0.10_26, -0.07_77, -0.04_56
    ]
    SCREAMING_SNAKE_CASE							=     [
        7_6, 2_7, 4_0, 3_0, 7_6, 4_6, 4_4, 4_7, 4_0, 3_7, 3_8, 3_1, 4_5, 4_5, 7_6, 3_8, 3_1, 3_3,
        4_5, 7_6, 4_1, 3_2, 7_6, 4_5, 4_6, 4_1, 4_0, 3_1, 7_8, 7_6
    ]
  
  
  
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       Tuple						=						JukeboxTokenizer.from_pretrained(self.model_id  )
          UpperCAmelCase__ :       str						=						tokenizer(**self.metas  )["""input_ids"""]
          return tokens
  
  
  
    @slow
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       Union[str, Any]						=						JukeboxModel.from_pretrained(self.model_id       ,					min_duration=0  ).eval()
          UpperCAmelCase__ :       Dict						=						self.prepare_inputs()
  
          set_seed(0  )
          UpperCAmelCase__ :       int						=						[torch.zeros(1       ,					0       ,					dtype=torch.long  ).cpu() for _ in range(3  )]
          UpperCAmelCase__ :       Optional[int]						=						model._sample(UpperCamelCase_       ,					UpperCamelCase_       ,					[0]       ,					sample_length=40 * model.priors[0].raw_to_tokens       ,					save_results=UpperCamelCase_  )
          self.assertIn(zs[0][0].detach().cpu().tolist()       ,					[self.EXPECTED_OUTPUT_2, self.EXPECTED_OUTPUT_2_PT_2]  )
  
          set_seed(0  )
          UpperCAmelCase__ :       List[str]						=						model._sample(UpperCamelCase_       ,					UpperCamelCase_       ,					[1]       ,					sample_length=40 * model.priors[1].raw_to_tokens       ,					save_results=UpperCamelCase_  )
          self.assertIn(zs[1][0].detach().cpu().tolist()       ,					[self.EXPECTED_OUTPUT_1, self.EXPECTED_OUTPUT_1_PT_2]  )
  
          set_seed(0  )
          UpperCAmelCase__ :       List[str]						=						model._sample(UpperCamelCase_       ,					UpperCamelCase_       ,					[2]       ,					sample_length=40 * model.priors[2].raw_to_tokens       ,					save_results=UpperCamelCase_  )
          self.assertIn(zs[2][0].detach().cpu().tolist()       ,					[self.EXPECTED_OUTPUT_0, self.EXPECTED_OUTPUT_0_PT_2]  )
  
  
  
    @slow
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       List[str]						=						False
          UpperCAmelCase__ :       List[str]						=						JukeboxModel.from_pretrained(self.model_id       ,					min_duration=0  ).eval()
  
          UpperCAmelCase__ :       Optional[int]						=						self.prepare_inputs()
          set_seed(0  )
          UpperCAmelCase__ :       List[Any]						=						[torch.zeros(1       ,					0       ,					dtype=torch.long  ) for _ in range(3  )]
  
          UpperCAmelCase__ :       int						=						model.priors[0]
          UpperCAmelCase__ :       Optional[Any]						=						0
          UpperCAmelCase__ :       List[Any]						=						top_prior.get_music_tokens_conds(UpperCamelCase_       ,					start=UpperCamelCase_       ,					end=start + top_prior.n_ctx  )
          UpperCAmelCase__ :       Dict						=						top_prior.get_metadata(labels[0].clone()       ,					UpperCamelCase_       ,					1058304       ,					0  )
  
          self.assertIsNone(UpperCamelCase_  )
          self.assertListEqual(metadata.numpy()[0][:10].tolist()       ,					self.EXPECTED_Y_COND  )
  
          UpperCAmelCase__				,		UpperCAmelCase__				,		UpperCAmelCase__ :       Any						=						top_prior.get_cond(UpperCamelCase_       ,					UpperCamelCase_  )
          torch.testing.assert_allclose(
              audio_conditioning[0][0][:30].detach()       ,					torch.tensor(self.EXPECTED_AUDIO_COND  )       ,					atol=1e-4       ,					rtol=1e-4  )
          torch.testing.assert_allclose(
              metadata_conditioning[0][0][:30].detach()       ,					torch.tensor(self.EXPECTED_META_COND  )       ,					atol=1e-4       ,					rtol=1e-4  )
          torch.testing.assert_allclose(
              lyric_tokens[0, :30].detach()       ,					torch.tensor(self.EXPECTED_LYRIC_COND  )       ,					atol=1e-4       ,					rtol=1e-4  )
  
  
  
    @slow
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       List[str]						=						False
  
          UpperCAmelCase__ :       int						=						JukeboxModel.from_pretrained(self.model_id       ,					min_duration=0  ).eval()
          set_seed(0  )
          UpperCAmelCase__ :       str						=						torch.rand((1, 5120, 1)  )
          UpperCAmelCase__ :       Any						=						list(self.prepare_inputs()  )
  
          UpperCAmelCase__ :       Optional[Any]						=						[model.vqvae.encode(UpperCamelCase_       ,					start_level=2       ,					bs_chunks=waveform.shape[0]  )[0], None, None]
          UpperCAmelCase__ :       Dict						=						model._sample(
              UpperCamelCase_       ,					UpperCamelCase_       ,					sample_levels=[0]       ,					save_results=UpperCamelCase_       ,					sample_length=40 * model.priors[0].raw_to_tokens  )
          torch.testing.assert_allclose(zs[0][0][:40]       ,					torch.tensor(self.EXPECTED_PRIMED_0  )  )
  
          UpperCAmelCase__ :       Union[str, Any]						=						torch.cat((zs[0], torch.zeros(1       ,					2048 - zs[0].shape[-1]  ))       ,					dim=-1  ).long()
          UpperCAmelCase__ :       int						=						[upper_a, model.vqvae.encode(UpperCamelCase_       ,					start_level=1       ,					bs_chunks=waveform.shape[0]  )[0], None]
          UpperCAmelCase__ :       Optional[int]						=						model._sample(
              UpperCamelCase_       ,					UpperCamelCase_       ,					sample_levels=[1]       ,					save_results=UpperCamelCase_       ,					sample_length=40 * model.priors[1].raw_to_tokens  )
          torch.testing.assert_allclose(zs[1][0][:40]       ,					torch.tensor(self.EXPECTED_PRIMED_1  )  )
  
          UpperCAmelCase__ :       Optional[Any]						=						torch.cat((zs[1], torch.zeros(1       ,					2048 - zs[1].shape[-1]  ))       ,					dim=-1  ).long()
          UpperCAmelCase__ :       List[str]						=						[upper_a, upper_a, model.vqvae.encode(UpperCamelCase_       ,					start_level=0       ,					bs_chunks=waveform.shape[0]  )[0]]
          UpperCAmelCase__ :       int						=						model._sample(
              UpperCamelCase_       ,					UpperCamelCase_       ,					sample_levels=[2]       ,					save_results=UpperCamelCase_       ,					sample_length=40 * model.priors[2].raw_to_tokens  )
          torch.testing.assert_allclose(zs[2][0][:40].cpu()       ,					torch.tensor(self.EXPECTED_PRIMED_2  )  )
  
  
  
  
    @slow
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       Optional[int]						=						JukeboxModel.from_pretrained(self.model_id       ,					min_duration=0  ).eval()
          set_seed(0  )
          UpperCAmelCase__ :       int						=						torch.rand((1, 5120, 1)  )
          with torch.no_grad():
                UpperCAmelCase__ :       Tuple						=						model.vqvae.encode(UpperCamelCase_       ,					start_level=2       ,					bs_chunks=x.shape[0]  )
          torch.testing.assert_allclose(zs[0][0]       ,					torch.tensor(self.EXPECTED_VQVAE_ENCODE  )  )
  
          with torch.no_grad():
                UpperCAmelCase__ :       Tuple						=						model.vqvae.decode(UpperCamelCase_       ,					start_level=2       ,					bs_chunks=x.shape[0]  )
          torch.testing.assert_allclose(x[0, :40, 0]       ,					torch.tensor(self.EXPECTED_VQVAE_DECODE  )       ,					atol=1e-4       ,					rtol=1e-4  )
  
  
  
  
  @require_torch
  class 			lowerCamelCase  (					unittest.TestCase      ):
  
  
    '''simple docstring'''
  
  
  
  
  
  
  
    SCREAMING_SNAKE_CASE							=     (JukeboxModel,) if is_torch_available() else ()
    SCREAMING_SNAKE_CASE							=     "openai/jukebox-5b-lyrics"
    SCREAMING_SNAKE_CASE							=     {
        "artist": "Zac Brown Band",
        "genres": "Country",
        "lyrics": "I met a traveller from an antique land,\n    Who said \"Two vast and trunkless legs of stone\n    Stand in the desert. . . . Near them, on the sand,\n    Half sunk a shattered visage lies, whose frown,\n    And wrinkled lip, and sneer of cold command,\n    Tell that its sculptor well those passions read\n    Which yet survive, stamped on these lifeless things,\n    The hand that mocked them, and the heart that fed;\n    And on the pedestal, these words appear:\n    My name is Ozymandias, King of Kings;\n    Look on my Works, ye Mighty, and despair!\n    Nothing beside remains. Round the decay\n    Of that colossal Wreck, boundless and bare\n    The lone and level sands stretch far away\n    ",
    }
  
    # fmt: off
    SCREAMING_SNAKE_CASE							=     [
        1_4_8_9, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3,
        6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3,
        6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3,
        6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3,
        1_4_8_9, 1_4_8_9, 1_4_8_9, 1_4_8_9, 1_1_5_0, 1_8_5_3, 1_5_0_9, 1_1_5_0, 1_3_5_7, 1_5_0_9, 6, 1_2_7_2
    ]
    SCREAMING_SNAKE_CASE							=     [
        1_4_8_9, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3,
        6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3,
        6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3,
        6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3,
        6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3
    ]
  
    SCREAMING_SNAKE_CASE							=     [
        1_1_2_5, 4_1_6, 1_1_2_5, 1_1_2_5, 1_1_2_5, 1_1_2_5, 1_1_2_5, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6,
        4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6,
        4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6,
        4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6,
        4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6
    ]
    SCREAMING_SNAKE_CASE							=     [
        4_1_6, 4_1_6, 1_1_2_5, 1_1_2_5, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6,
        4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6,
        4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6,
        4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6,
        4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6
    ]
  
    SCREAMING_SNAKE_CASE							=     [
        1_7_5_5, 1_0_6_1, 2_3_4, 1_7_5_5, 1_0_6_1, 1_7_5_5, 1_8_5, 2_9_0, 3_0_7, 3_0_7, 6_1_6, 6_1_6,
        6_1_6, 6_1_6, 6_1_6, 6_1_6, 3_0_7, 2_9_0, 4_1_7, 1_7_5_5, 2_3_4, 1_7_5_5, 1_8_5, 2_9_0,
        2_9_0, 2_9_0, 3_0_7, 6_1_6, 6_1_6, 6_1_6, 6_1_6, 6_1_6, 2_9_0, 2_3_4, 2_3_4, 1_7_5_5,
        2_3_4, 2_3_4, 1_7_5_5, 2_3_4, 1_8_5, 1_8_5, 3_0_7, 6_1_6, 6_1_6, 6_1_6, 6_1_6, 2_9_0,
        1_7_5_5, 1_7_5_5, 1_7_5_5, 2_3_4, 2_3_4, 1_7_5_5, 1_5_7_2, 2_9_0, 3_0_7, 6_1_6, 3_4, 6_1_6
    ]
    SCREAMING_SNAKE_CASE							=     [
        8_5_4, 8_4_2, 1_3_5_3, 1_1_4, 1_3_5_3, 8_4_2, 1_8_5, 8_4_2, 1_8_5, 1_1_4, 5_9_1, 8_4_2, 1_8_5,
        4_1_7, 1_8_5, 8_4_2, 3_0_7, 8_4_2, 5_9_1, 8_4_2, 1_8_5, 8_4_2, 1_8_5, 8_4_2, 5_9_1, 8_4_2,
        1_3_5_3, 8_4_2, 1_8_5, 8_4_2, 5_9_1, 8_4_2, 5_9_1, 1_1_4, 5_9_1, 8_4_2, 1_8_5, 8_4_2, 5_9_1,
        8_9, 5_9_1, 8_4_2, 5_9_1, 8_4_2, 5_9_1, 4_1_7, 1_3_7_2, 8_4_2, 1_3_7_2, 8_4_2, 3_4, 8_4_2,
        1_8_5, 8_9, 5_9_1, 8_4_2, 1_8_5, 8_4_2, 5_9_1, 6_3_2
    ]
  
    SCREAMING_SNAKE_CASE							=     [
        1_4_8_9, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3,
        6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3,
        6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3,
        6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3,
        6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3
    ]
    SCREAMING_SNAKE_CASE							=     [
        1_4_8_9, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3,
        6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3,
        6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 6_5_3, 1_8_5_3, 1_1_7_7, 1_5_3_6, 1_2_2_8,
        7_1_0, 4_7_5, 1_4_8_9, 1_2_2_9, 1_2_2_4, 2_3_1, 1_2_2_4, 2_5_2, 1_4_3_4, 6_5_3, 4_7_5,
        1_1_0_6, 1_8_7_7, 1_5_9_9, 1_2_2_8, 1_6_0_0, 1_6_8_3, 1_1_8_2, 1_8_5_3, 4_7_5, 1_8_6_4,
        2_5_2, 1_2_2_9, 1_4_3_4, 2_0_0_1
    ]
  
    SCREAMING_SNAKE_CASE							=     [
        1_1_2_5, 1_1_2_5, 4_1_6, 1_1_2_5, 1_1_2_5, 4_1_6, 1_1_2_5, 1_1_2_5, 4_1_6, 4_1_6, 1_1_2_5, 4_1_6,
        4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6,
        4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6,
        4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6,
        4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6, 4_1_6
    ]
    SCREAMING_SNAKE_CASE							=     [
        4_9_1, 1_7_5_5, 3_4, 1_6_1_3, 1_7_5_5, 4_1_7, 9_9_2, 1_6_1_3, 2_2_2, 8_4_2, 1_3_5_3, 1_6_1_3,
        8_4_4, 6_3_2, 1_8_5, 1_6_1_3, 8_4_4, 6_3_2, 1_8_5, 1_6_1_3, 1_8_5, 8_4_2, 6_7_7, 1_6_1_3,
        1_8_5, 1_1_4, 1_3_5_3, 1_6_1_3, 3_0_7, 8_9, 8_4_4, 1_6_1_3, 3_0_7, 1_3_3_2, 2_3_4, 1_9_7_9,
        3_0_7, 8_9, 1_3_5_3, 6_1_6, 3_4, 8_4_2, 1_8_5, 8_4_2, 3_4, 8_4_2, 1_8_5, 8_4_2,
        3_0_7, 1_1_4, 1_8_5, 8_9, 3_4, 1_2_6_8, 1_8_5, 8_9, 3_4, 8_4_2, 1_8_5, 8_9
    ]
  
  
  
    def    _a			(self       ,					_lowerCamelCase  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       Union[str, Any]						=						JukeboxTokenizer.from_pretrained(UpperCamelCase_  )
          UpperCAmelCase__ :       Union[str, Any]						=						tokenizer(**self.metas  )["""input_ids"""]
          return tokens
  
  
  
    @slow
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       str						=						JukeboxModel.from_pretrained(self.model_id       ,					min_duration=0  ).eval()
          UpperCAmelCase__ :       List[Any]						=						self.prepare_inputs(self.model_id  )
  
          set_seed(0  )
          UpperCAmelCase__ :       Optional[Any]						=						[torch.zeros(1       ,					0       ,					dtype=torch.long  ).cpu() for _ in range(3  )]
          UpperCAmelCase__ :       List[str]						=						model._sample(UpperCamelCase_       ,					UpperCamelCase_       ,					[0]       ,					sample_length=60 * model.priors[0].raw_to_tokens       ,					save_results=UpperCamelCase_  )
          self.assertIn(zs[0][0].detach().cpu().tolist()       ,					[self.EXPECTED_OUTPUT_2, self.EXPECTED_OUTPUT_2_PT_2]  )
  
          set_seed(0  )
          UpperCAmelCase__ :       Optional[int]						=						model._sample(UpperCamelCase_       ,					UpperCamelCase_       ,					[1]       ,					sample_length=60 * model.priors[1].raw_to_tokens       ,					save_results=UpperCamelCase_  )
          self.assertIn(zs[1][0].detach().cpu().tolist()       ,					[self.EXPECTED_OUTPUT_1, self.EXPECTED_OUTPUT_1_PT_2]  )
  
          set_seed(0  )
          UpperCAmelCase__ :       List[str]						=						model._sample(UpperCamelCase_       ,					UpperCamelCase_       ,					[2]       ,					sample_length=60 * model.priors[2].raw_to_tokens       ,					save_results=UpperCamelCase_  )
          self.assertIn(zs[2][0].detach().cpu().tolist()       ,					[self.EXPECTED_OUTPUT_0, self.EXPECTED_OUTPUT_0_PT_2]  )
  
  
  
    @slow
    @skip("""Not enough GPU memory on CI runners"""  )
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       Optional[int]						=						JukeboxModel.from_pretrained(self.model_id       ,					min_duration=0  ).eval()
          UpperCAmelCase__ :       Union[str, Any]						=						[i.cuda() for i in self.prepare_inputs(self.model_id  )]
  
          set_seed(0  )
          model.priors[0].cuda()
          UpperCAmelCase__ :       List[str]						=						[torch.zeros(1       ,					0       ,					dtype=torch.long  ).cuda() for _ in range(3  )]
          UpperCAmelCase__ :       str						=						model._sample(UpperCamelCase_       ,					UpperCamelCase_       ,					[0]       ,					sample_length=60 * model.priors[0].raw_to_tokens       ,					save_results=UpperCamelCase_  )
          torch.testing.assert_allclose(zs[0][0].cpu()       ,					torch.tensor(self.EXPECTED_GPU_OUTPUTS_2  )  )
          model.priors[0].cpu()
  
          set_seed(0  )
          model.priors[1].cuda()
          UpperCAmelCase__ :       Dict						=						model._sample(UpperCamelCase_       ,					UpperCamelCase_       ,					[1]       ,					sample_length=60 * model.priors[1].raw_to_tokens       ,					save_results=UpperCamelCase_  )
          torch.testing.assert_allclose(zs[1][0].cpu()       ,					torch.tensor(self.EXPECTED_GPU_OUTPUTS_1  )  )
          model.priors[1].cpu()
  
          set_seed(0  )
          model.priors[2].cuda()
          UpperCAmelCase__ :       Dict						=						model._sample(UpperCamelCase_       ,					UpperCamelCase_       ,					[2]       ,					sample_length=60 * model.priors[2].raw_to_tokens       ,					save_results=UpperCamelCase_  )
          torch.testing.assert_allclose(zs[2][0].cpu()       ,					torch.tensor(self.EXPECTED_GPU_OUTPUTS_0  )  )
  
  
  
  
    @slow
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       List[Any]						=						"""ArthurZ/jukebox_prior_0"""
          UpperCAmelCase__ :       Any						=						JukeboxPrior.from_pretrained(UpperCamelCase_       ,					min_duration=0  ).eval().half().to("""cuda"""  )
  
          UpperCAmelCase__ :       List[str]						=						self.prepare_inputs(UpperCamelCase_  )[0].cuda()
          UpperCAmelCase__ :       Optional[Any]						=						model.get_metadata(UpperCamelCase_       ,					0       ,					7680       ,					0  )
          set_seed(0  )
          UpperCAmelCase__ :       Any						=						model.sample(1       ,					metadata=UpperCamelCase_       ,					sample_tokens=60  )
          self.assertIn(outputs[0].cpu().tolist()       ,					[self.EXPECTED_GPU_OUTPUTS_2, self.EXPECTED_GPU_OUTPUTS_2_PT_2]  )
  
  
style_context: 
  
  """simple docstring"""
  import tempfile
  import unittest
  
  import numpy as np
  import torch
  
  from diffusers import ScoreSdeVeScheduler
  
  class 			lowerCamelCase  (					unittest.TestCase      ):
  
  
    '''simple docstring'''
  
  
  
  
  
  
  
    SCREAMING_SNAKE_CASE							=     (ScoreSdeVeScheduler,)
    SCREAMING_SNAKE_CASE							=     ()
  
  
  
    @property
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       List[Any]						=						4
          UpperCAmelCase__ :       Tuple						=						3
          UpperCAmelCase__ :       Optional[Any]						=						8
          UpperCAmelCase__ :       Dict						=						8
  
          UpperCAmelCase__ :       List[Any]						=						torch.rand((batch_size, num_channels, height, width)  )
  
          return sample
  
  
  
    @property
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       Tuple						=						4
          UpperCAmelCase__ :       Optional[Any]						=						3
          UpperCAmelCase__ :       List[str]						=						8
          UpperCAmelCase__ :       Dict						=						8
  
          UpperCAmelCase__ :       List[str]						=						batch_size * num_channels * height * width
          UpperCAmelCase__ :       Any						=						torch.arange(_lowerCamelCase  )
          UpperCAmelCase__ :       Any						=						sample.reshape(_lowerCamelCase       ,					_lowerCamelCase       ,					_lowerCamelCase       ,					_lowerCamelCase  )
          UpperCAmelCase__ :       Dict						=						sample / num_elems
          UpperCAmelCase__ :       Optional[int]						=						sample.permute(3       ,					0       ,					1       ,					2  )
  
          return sample
  
  
  
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          def model(_lowerCamelCase       ,					_lowerCamelCase       ,					*_lowerCamelCase  ):
                return sample * t / (t + 1)
  
          return model
  
  
  
    def    _a			(self       ,					**_lowerCamelCase  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       List[str]						=						{
              """num_train_timesteps""": 2000,
              """snr""": 0.15,
              """sigma_min""": 0.01,
              """sigma_max""": 1348,
              """sampling_eps""": 1e-5,
          }
  
          config.update(**_lowerCamelCase  )
          return config
  
  
  
    def    _a			(self       ,					_lowerCamelCase=0       ,					**_lowerCamelCase  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       str						=						dict(self.forward_default_kwargs  )
  
          for scheduler_class in self.scheduler_classes:
                UpperCAmelCase__ :       int						=						self.dummy_sample
                UpperCAmelCase__ :       Tuple						=						0.1 * sample
  
                UpperCAmelCase__ :       int						=						self.get_scheduler_config(**_lowerCamelCase  )
                UpperCAmelCase__ :       Dict						=						scheduler_class(**_lowerCamelCase  )
  
                with tempfile.TemporaryDirectory() as tmpdirname:
                      scheduler.save_config(_lowerCamelCase  )
                      UpperCAmelCase__ :       Union[str, Any]						=						scheduler_class.from_pretrained(_lowerCamelCase  )
  
                UpperCAmelCase__ :       Tuple						=						scheduler.step_pred(
                    _lowerCamelCase       ,					_lowerCamelCase       ,					_lowerCamelCase       ,					generator=torch.manual_seed(0  )       ,					**_lowerCamelCase  ).prev_sample
                UpperCAmelCase__ :       Optional[int]						=						new_scheduler.step_pred(
                    _lowerCamelCase       ,					_lowerCamelCase       ,					_lowerCamelCase       ,					generator=torch.manual_seed(0  )       ,					**_lowerCamelCase  ).prev_sample
  
                assert torch.sum(torch.abs(output - new_output  )  ) < 1e-5, "Scheduler outputs are not identical"
  
                UpperCAmelCase__ :       Optional[int]						=						scheduler.step_correct(_lowerCamelCase       ,					_lowerCamelCase       ,					generator=torch.manual_seed(0  )       ,					**_lowerCamelCase  ).prev_sample
                UpperCAmelCase__ :       Union[str, Any]						=						new_scheduler.step_correct(
                    _lowerCamelCase       ,					_lowerCamelCase       ,					generator=torch.manual_seed(0  )       ,					**_lowerCamelCase  ).prev_sample
  
                assert torch.sum(torch.abs(output - new_output  )  ) < 1e-5, "Scheduler correction are not identical"
  
  
  
    def    _a			(self       ,					_lowerCamelCase=0       ,					**_lowerCamelCase  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       Optional[int]						=						dict(self.forward_default_kwargs  )
          kwargs.update(_lowerCamelCase  )
  
          for scheduler_class in self.scheduler_classes:
                UpperCAmelCase__ :       List[str]						=						self.dummy_sample
                UpperCAmelCase__ :       List[str]						=						0.1 * sample
  
                UpperCAmelCase__ :       Optional[Any]						=						self.get_scheduler_config()
                UpperCAmelCase__ :       Optional[Any]						=						scheduler_class(**_lowerCamelCase  )
  
                with tempfile.TemporaryDirectory() as tmpdirname:
                      scheduler.save_config(_lowerCamelCase  )
                      UpperCAmelCase__ :       Union[str, Any]						=						scheduler_class.from_pretrained(_lowerCamelCase  )
  
                UpperCAmelCase__ :       Optional[int]						=						scheduler.step_pred(
                    _lowerCamelCase       ,					_lowerCamelCase       ,					_lowerCamelCase       ,					generator=torch.manual_seed(0  )       ,					**_lowerCamelCase  ).prev_sample
                UpperCAmelCase__ :       Any						=						new_scheduler.step_pred(
                    _lowerCamelCase       ,					_lowerCamelCase       ,					_lowerCamelCase       ,					generator=torch.manual_seed(0  )       ,					**_lowerCamelCase  ).prev_sample
  
                assert torch.sum(torch.abs(output - new_output  )  ) < 1e-5, "Scheduler outputs are not identical"
  
                UpperCAmelCase__ :       Optional[Any]						=						scheduler.step_correct(_lowerCamelCase       ,					_lowerCamelCase       ,					generator=torch.manual_seed(0  )       ,					**_lowerCamelCase  ).prev_sample
                UpperCAmelCase__ :       Dict						=						new_scheduler.step_correct(
                    _lowerCamelCase       ,					_lowerCamelCase       ,					generator=torch.manual_seed(0  )       ,					**_lowerCamelCase  ).prev_sample
  
                assert torch.sum(torch.abs(output - new_output  )  ) < 1e-5, "Scheduler correction are not identical"
  
  
  
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          for timesteps in [10, 100, 1000]:
                self.check_over_configs(num_train_timesteps=_lowerCamelCase  )
  
  
  
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          for sigma_min, sigma_max in zip([0.0_001, 0.001, 0.01]       ,					[1, 100, 1000]  ):
                self.check_over_configs(sigma_min=_lowerCamelCase       ,					sigma_max=_lowerCamelCase  )
  
  
  
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          for t in [0.1, 0.5, 0.75]:
                self.check_over_forward(time_step=_lowerCamelCase  )
  
  
  
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       Optional[Any]						=						dict(self.forward_default_kwargs  )
  
          UpperCAmelCase__ :       int						=						self.scheduler_classes[0]
          UpperCAmelCase__ :       int						=						self.get_scheduler_config()
          UpperCAmelCase__ :       Dict						=						scheduler_class(**_lowerCamelCase  )
  
          UpperCAmelCase__ :       List[str]						=						3
  
          UpperCAmelCase__ :       List[Any]						=						self.dummy_model()
          UpperCAmelCase__ :       int						=						self.dummy_sample_deter
  
          scheduler.set_sigmas(_lowerCamelCase  )
          scheduler.set_timesteps(_lowerCamelCase  )
          UpperCAmelCase__ :       Tuple						=						torch.manual_seed(0  )
  
          for i, t in enumerate(scheduler.timesteps  ):
                UpperCAmelCase__ :       Tuple						=						scheduler.sigmas[i]
  
                for _ in range(scheduler.config.correct_steps  ):
                      with torch.no_grad():
                            UpperCAmelCase__ :       Optional[int]						=						model(_lowerCamelCase       ,					_lowerCamelCase  )
                      UpperCAmelCase__ :       List[str]						=						scheduler.step_correct(_lowerCamelCase       ,					_lowerCamelCase       ,					generator=_lowerCamelCase       ,					**_lowerCamelCase  ).prev_sample
  
                with torch.no_grad():
                      UpperCAmelCase__ :       Tuple						=						model(_lowerCamelCase       ,					_lowerCamelCase  )
  
                UpperCAmelCase__ :       str						=						scheduler.step_pred(_lowerCamelCase       ,					_lowerCamelCase       ,					_lowerCamelCase       ,					generator=_lowerCamelCase       ,					**_lowerCamelCase  )
                UpperCAmelCase__				,		UpperCAmelCase__ :       List[str]						=						output.prev_sample, output.prev_sample_mean
  
          UpperCAmelCase__ :       int						=						torch.sum(torch.abs(_lowerCamelCase  )  )
          UpperCAmelCase__ :       str						=						torch.mean(torch.abs(_lowerCamelCase  )  )
  
          assert np.isclose(result_sum.item()       ,					14_372_758_528.0  )
          assert np.isclose(result_mean.item()       ,					18_714_530.0  )
  
  
  
  
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       Optional[int]						=						dict(self.forward_default_kwargs  )
  
          UpperCAmelCase__ :       Union[str, Any]						=						kwargs.pop("""num_inference_steps"""       ,					_lowerCamelCase  )
  
          for scheduler_class in self.scheduler_classes:
                UpperCAmelCase__ :       Dict						=						self.get_scheduler_config()
                UpperCAmelCase__ :       List[Any]						=						scheduler_class(**_lowerCamelCase  )
  
                UpperCAmelCase__ :       str						=						self.dummy_sample
                UpperCAmelCase__ :       Tuple						=						0.1 * sample
  
                if num_inference_steps is not None and hasattr(_lowerCamelCase       ,					"""set_timesteps"""  ):
                      scheduler.set_timesteps(_lowerCamelCase  )
                elif num_inference_steps is not None and not hasattr(_lowerCamelCase       ,					"""set_timesteps"""  ):
                      UpperCAmelCase__ :       Dict						=						num_inference_steps
  
                UpperCAmelCase__ :       str						=						scheduler.step_pred(_lowerCamelCase       ,					0       ,					_lowerCamelCase       ,					generator=torch.manual_seed(0  )       ,					**_lowerCamelCase  ).prev_sample
                UpperCAmelCase__ :       int						=						scheduler.step_pred(_lowerCamelCase       ,					1       ,					_lowerCamelCase       ,					generator=torch.manual_seed(0  )       ,					**_lowerCamelCase  ).prev_sample
  
                self.assertEqual(output_a.shape       ,					sample.shape  )
                self.assertEqual(output_a.shape       ,					output_a.shape  )
  
  