
"""simple docstring"""


import random
import unittest

import numpy as np
import torch

from diffusers import DDIMScheduler, LDMSuperResolutionPipeline, UNetaDModel, VQModel
from diffusers.utils import PIL_INTERPOLATION, floats_tensor, load_image, slow, torch_device
from diffusers.utils.testing_utils import enable_full_determinism, require_torch


enable_full_determinism()







class 		lowerCamelCase__					(					unittest.TestCase				):





			'''simple docstring'''



			@property
			def 					_lowerCAmelCase		(							self  ) ->     Union[str, Any]:
				_lowerCAmelCase								=1
				_lowerCAmelCase								=3
				_lowerCAmelCase								=(32, 32)

				_lowerCAmelCase								=floats_tensor((batch_size, num_channels) + sizes     ,     rng=random.Random(0  )  ).to(__UpperCAmelCase  )
				return image



			@property
			def 					_lowerCAmelCase		(							self  ) ->     Optional[Any]:
				torch.manual_seed(0  )
				_lowerCAmelCase								=UNetaDModel(
				    block_out_channels=(32, 64)     ,     layers_per_block=2     ,     sample_size=32     ,     in_channels=6     ,     out_channels=3     ,     down_block_types=("""DownBlock2D""", """AttnDownBlock2D""")     ,     up_block_types=("""AttnUpBlock2D""", """UpBlock2D""")     ,     )
				return model



			@property
			def 					_lowerCAmelCase		(							self  ) ->     Dict:
				torch.manual_seed(0  )
				_lowerCAmelCase								=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



			def 					_lowerCAmelCase		(							self  ) ->     Tuple:
				_lowerCAmelCase								="""cpu"""
				_lowerCAmelCase								=self.dummy_uncond_unet
				_lowerCAmelCase								=DDIMScheduler()
				_lowerCAmelCase								=self.dummy_vq_model

				_lowerCAmelCase								=LDMSuperResolutionPipeline(unet=__UpperCAmelCase     ,     vqvae=__UpperCAmelCase     ,     scheduler=__UpperCAmelCase  )
				ldm.to(__UpperCAmelCase  )
				ldm.set_progress_bar_config(disable=__UpperCAmelCase  )

				_lowerCAmelCase								=self.dummy_image.to(__UpperCAmelCase  )

				_lowerCAmelCase								=torch.Generator(device=__UpperCAmelCase  ).manual_seed(0  )
				_lowerCAmelCase								=ldm(image=__UpperCAmelCase     ,     generator=__UpperCAmelCase     ,     num_inference_steps=2     ,     output_type="""numpy"""  ).images

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

				assert image.shape == (1, 64, 64, 3)
				_lowerCAmelCase								=np.array([0.8_6_7_8, 0.8_2_4_5, 0.6_3_8_1, 0.6_8_3_0, 0.4_3_8_5, 0.5_5_9_9, 0.4_6_4_1, 0.6_2_0_1, 0.5_1_5_0]  )

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



			@unittest.skipIf(torch_device != """cuda"""     ,     """This test requires a GPU"""  )
			def 					_lowerCAmelCase		(							self  ) ->     Union[str, Any]:
				_lowerCAmelCase								=self.dummy_uncond_unet
				_lowerCAmelCase								=DDIMScheduler()
				_lowerCAmelCase								=self.dummy_vq_model

				# put models in fp16
				_lowerCAmelCase								=unet.half()
				_lowerCAmelCase								=vqvae.half()

				_lowerCAmelCase								=LDMSuperResolutionPipeline(unet=__UpperCAmelCase     ,     vqvae=__UpperCAmelCase     ,     scheduler=__UpperCAmelCase  )
				ldm.to(__UpperCAmelCase  )
				ldm.set_progress_bar_config(disable=__UpperCAmelCase  )

				_lowerCAmelCase								=self.dummy_image.to(__UpperCAmelCase  )

				_lowerCAmelCase								=ldm(__UpperCAmelCase     ,     num_inference_steps=2     ,     output_type="""numpy"""  ).images

				assert image.shape == (1, 64, 64, 3)







@slow
@require_torch
class 		lowerCamelCase__					(					unittest.TestCase				):





			'''simple docstring'''



			def 					_lowerCAmelCase		(							self  ) ->     Union[str, Any]:
				_lowerCAmelCase								=load_image(
				    """https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"""
				    """/vq_diffusion/teddy_bear_pool.png"""  )
				_lowerCAmelCase								=init_image.resize((64, 64)     ,     resample=PIL_INTERPOLATION["""lanczos"""]  )

				_lowerCAmelCase								=LDMSuperResolutionPipeline.from_pretrained("""duongna/ldm-super-resolution"""     ,     device_map="""auto"""  )
				ldm.set_progress_bar_config(disable=__UpperCAmelCase  )

				_lowerCAmelCase								=torch.manual_seed(0  )
				_lowerCAmelCase								=ldm(image=__UpperCAmelCase     ,     generator=__UpperCAmelCase     ,     num_inference_steps=20     ,     output_type="""numpy"""  ).images

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

				assert image.shape == (1, 2_56, 2_56, 3)
				_lowerCAmelCase								=np.array([0.7_6_4_4, 0.7_6_7_9, 0.7_6_4_2, 0.7_6_3_3, 0.7_6_6_6, 0.7_5_6_0, 0.7_4_2_5, 0.7_2_5_7, 0.6_9_0_7]  )

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





"""simple docstring"""


def     _lowerCamelCase(__UpperCamelCase = 4000000       )				-> int:
	_lowerCAmelCase								=1
	_lowerCAmelCase								=2
	_lowerCAmelCase								=0
	while j <= n:
		if j % 2 == 0:
			total += j
		_lowerCAmelCase						,							_lowerCAmelCase								=j, i + j

	return total


if __name__ == "__main__":
			print(F"""{solution() = }""")



