




'''simple docstring'''







import unittest

import numpy as np
import torch
from transformers import CLIPTextConfig, CLIPTextModel

from diffusers import DDIMScheduler, LDMPipeline, UNetaDModel, VQModel
from diffusers.utils.testing_utils import enable_full_determinism, require_torch, slow, torch_device


enable_full_determinism()


class     _a						(			unittest.TestCase				):
       @property
       def 					A   (			self		:			Optional[int]       ):



           '''simple docstring'''

           torch.manual_seed(0       )
           UpperCAmelCase     =	UNetaDModel(
               block_out_channels=(32, 64)     ,       layers_per_block=2     ,       sample_size=32     ,       in_channels=3     ,       out_channels=3     ,       down_block_types=('''DownBlock2D''', '''AttnDownBlock2D''')     ,       up_block_types=('''AttnUpBlock2D''', '''UpBlock2D''')     ,       )
           return model
       @property
       def 					A   (			self		:			List[str]       ):



           '''simple docstring'''

           torch.manual_seed(0       )
           UpperCAmelCase     =	VQModel(
               block_out_channels=[32, 64]     ,       in_channels=3     ,       out_channels=3     ,       down_block_types=['''DownEncoderBlock2D''', '''DownEncoderBlock2D''']     ,       up_block_types=['''UpDecoderBlock2D''', '''UpDecoderBlock2D''']     ,       latent_channels=3     ,       )
           return model
       @property
       def 					A   (			self		:			Tuple       ):



           '''simple docstring'''

           torch.manual_seed(0       )
           UpperCAmelCase     =	CLIPTextConfig(
               bos_token_id=0     ,       eos_token_id=2     ,       hidden_size=32     ,       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 CLIPTextModel(lowercase       )







       def 					A   (			self		:			Any       ):



           '''simple docstring'''

           UpperCAmelCase     =	self.dummy_uncond_unet
           UpperCAmelCase     =	DDIMScheduler()
           UpperCAmelCase     =	self.dummy_vq_model

           UpperCAmelCase     =	LDMPipeline(unet=lowercase     ,       vqvae=lowercase     ,       scheduler=lowercase       )
           ldm.to(lowercase       )
           ldm.set_progress_bar_config(disable=lowercase       )

           UpperCAmelCase     =	torch.manual_seed(0       )
           UpperCAmelCase     =	ldm(generator=lowercase     ,       num_inference_steps=2     ,       output_type='''numpy'''       ).images

           UpperCAmelCase     =	torch.manual_seed(0       )
           UpperCAmelCase     =	ldm(generator=lowercase     ,       num_inference_steps=2     ,       output_type='''numpy'''     ,       return_dict=lowercase       )[0]

           UpperCAmelCase     =	image[0, -3:, -3:, -1]
           UpperCAmelCase     =	image_from_tuple[0, -3:, -3:, -1]

           assert image.shape == (1, 64, 64, 3)
           UpperCAmelCase     =	np.array([0.8512, 0.818, 0.6411, 0.6808, 0.4465, 0.5618, 0.46, 0.6231, 0.5172]       )
           UpperCAmelCase     =	1E-2 if torch_device != '''mps''' else 3E-2

           assert np.abs(image_slice.flatten() - expected_slice       ).max() < tolerance
           assert np.abs(image_from_tuple_slice.flatten() - expected_slice       ).max() < tolerance






@slow
@require_torch
class     _a						(			unittest.TestCase				):
       def 					A   (			self		:			List[str]       ):



           '''simple docstring'''

           UpperCAmelCase     =	LDMPipeline.from_pretrained('''CompVis/ldm-celebahq-256'''       )
           ldm.to(lowercase       )
           ldm.set_progress_bar_config(disable=lowercase       )

           UpperCAmelCase     =	torch.manual_seed(0       )
           UpperCAmelCase     =	ldm(generator=lowercase     ,       num_inference_steps=5     ,       output_type='''numpy'''       ).images

           UpperCAmelCase     =	image[0, -3:, -3:, -1]

           assert image.shape == (1, 256, 256, 3)
           UpperCAmelCase     =	np.array([0.4399, 0.4_4975, 0.4_6825, 0.474, 0.4359, 0.4581, 0.4_5095, 0.4341, 0.4447]       )
           UpperCAmelCase     =	1E-2 if torch_device != '''mps''' else 3E-2

           assert np.abs(image_slice.flatten() - expected_slice       ).max() < tolerance










'''simple docstring'''







def 		snake_case_							():
    for n in range(1					,     1_0_0_0_0_0_0  ):
        yield n * (n + 1) // 2





def 		snake_case_							(_a			:							Union[str, Any]  ):
    UpperCAmelCase     =	1
    UpperCAmelCase     =	2
    while i * i <= n:
        UpperCAmelCase     =	0
        while n % i == 0:
            n //= i
            multiplicity += 1
        divisors_count *= multiplicity + 1
        i += 1
    if n > 1:
        divisors_count *= 2
    return divisors_count





def 		snake_case_							():
    return next(i for i in triangle_number_generator() if count_divisors(_a  ) > 5_0_0  )


if __name__ == "__main__":
   print(solution())




