code: 
  
  
  import torch
  import torch.nn.functional as F
  
  from diffusers import VQDiffusionScheduler
  
  from .test_schedulers import SchedulerCommonTest
  
  
  
  class   __lowerCamelCase (_a	):
         _lowercase       							=    (VQDiffusionScheduler,)
  
  
  
  
  
  
  
         def 		snake_case_  ( self:   str,**A_:   Dict				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              __UpperCamelCase   = {
                  'num_vec_classes': 4097,
                  'num_train_timesteps': 100,
              }
  
              config.update(**A_				)
              return config
  
  
  
  
  
  
  
         def 		snake_case_  ( self:   Any,A_:   List[Any]				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              __UpperCamelCase   = 4
              __UpperCamelCase   = 8
              __UpperCamelCase   = 8
  
              __UpperCamelCase   = torch.randint(0,A_,(batch_size, height * width)				)
  
              return sample
  
  
  
  
  
  
  
         @property
         def 		snake_case_  ( self:   Any				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              assert False
  
  
  
  
  
  
  
         def 		snake_case_  ( self:   Tuple,A_:   Dict				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              def model(A_:   List[Any],A_:   Dict,*A_:   List[Any]				):
                   __UpperCamelCase,						__UpperCamelCase   = sample.shape
                   __UpperCamelCase   = torch.rand((batch_size, num_vec_classes - 1, num_latent_pixels)				)
                   __UpperCamelCase   = F.log_softmax(logits.double(),dim=1				).float()
                   return return_value
  
              return model
  
  
  
  
  
  
  
         def 		snake_case_  ( self:   Optional[int]				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              for timesteps in [2, 5, 100, 1000]:
                   self.check_over_configs(num_train_timesteps=A_				)
  
  
  
  
  
  
  
         def 		snake_case_  ( self:   Optional[Any]				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              for num_vec_classes in [5, 100, 1000, 4000]:
                   self.check_over_configs(num_vec_classes=A_				)
  
  
  
  
  
  
  
         def 		snake_case_  ( self:   List[str]				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              for t in [0, 50, 99]:
                   self.check_over_forward(time_step=A_				)
  
  
  
  
  
  
  
         def 		snake_case_  ( self:   str				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              pass
  
  
  
style_context: 
  
  
  def 		_A		(		_lowercase   )				->   bool:
  
  
       """simple docstring"""
  
  
       if not isinstance(_lowercase				,     _lowercase   ):
            raise ValueError('Input series is not valid, valid series - [1, 2/3, 2]'   )
       if len(_lowercase   ) == 0:
            raise ValueError('Input list must be a non empty list'   )
       if len(_lowercase   ) == 1 and series[0] != 0:
            return True
       __UpperCamelCase   = []
       __UpperCamelCase   = len(_lowercase   )
       for i in range(0				,     _lowercase   ):
            if series[i] == 0:
                 raise ValueError('Input series cannot have 0 as an element'   )
            rec_series.append(1 / series[i]   )
       __UpperCamelCase   = rec_series[1] - rec_series[0]
       for index in range(2				,     _lowercase   ):
            if rec_series[index] - rec_series[index - 1] != common_diff:
                 return False
       return True
  
  
  
  
  
  
  def 		_A		(		_lowercase   )				->   float:
  
  
       """simple docstring"""
  
  
       if not isinstance(_lowercase				,     _lowercase   ):
            raise ValueError('Input series is not valid, valid series - [2, 4, 6]'   )
       if len(_lowercase   ) == 0:
            raise ValueError('Input list must be a non empty list'   )
       __UpperCamelCase   = 0
       for val in series:
            answer += 1 / val
       return len(_lowercase   ) / answer
  
  
  if __name__ == "__main__":
      import doctest
  
      doctest.testmod()
  
  
  