






"""simple docstring"""



import unittest

import numpy as np
import PIL
import torch

from diffusers.image_processor import VaeImageProcessor




class        __lowercase(       unittest.TestCase  ):






						@property
						def 		lowerCAmelCase   (					self)			->  Optional[Any]:




											"""simple docstring"""





											lowerCamelCase__				=1
											lowerCamelCase__				=3
											lowerCamelCase__				=8
											lowerCamelCase__				=8

											lowerCamelCase__				=torch.rand((batch_size, num_channels, height, width))

											return sample






						def 		lowerCAmelCase   (					self    ,						_SCREAMING_SNAKE_CASE)			->  str:




											"""simple docstring"""





											if isinstance(image[0]    ,						PIL.Image.Image):
																return np.stack([np.array(_SCREAMING_SNAKE_CASE) for i in image]    ,						axis=0)
											elif isinstance(_SCREAMING_SNAKE_CASE    ,						torch.Tensor):
																return image.cpu().numpy().transpose(0    ,						2    ,						3    ,						1)
											return image






						def 		lowerCAmelCase   (					self)			->  Optional[int]:




											"""simple docstring"""





											lowerCamelCase__				=VaeImageProcessor(do_resize=_SCREAMING_SNAKE_CASE    ,						do_normalize=_SCREAMING_SNAKE_CASE)

											lowerCamelCase__				=self.dummy_sample
											lowerCamelCase__				=self.to_np(_SCREAMING_SNAKE_CASE)

											for output_type in ["pt", "np", "pil"]:
																lowerCamelCase__				=image_processor.postprocess(
																    image_processor.preprocess(_SCREAMING_SNAKE_CASE)    ,						output_type=_SCREAMING_SNAKE_CASE    ,						)
																lowerCamelCase__				=self.to_np(_SCREAMING_SNAKE_CASE)
																lowerCamelCase__				=(input_np * 2_55).round() if output_type == 'pil' else input_np
																assert (
																    np.abs(in_np - out_np).max() < 1E-6
																), F"decoded output does not match input for output_type {output_type}"






						def 		lowerCAmelCase   (					self)			->  str:




											"""simple docstring"""





											lowerCamelCase__				=VaeImageProcessor(do_resize=_SCREAMING_SNAKE_CASE    ,						do_normalize=_SCREAMING_SNAKE_CASE)
											lowerCamelCase__				=self.dummy_sample.cpu().numpy().transpose(0    ,						2    ,						3    ,						1)

											for output_type in ["pt", "np", "pil"]:
																lowerCamelCase__				=image_processor.postprocess(image_processor.preprocess(_SCREAMING_SNAKE_CASE)    ,						output_type=_SCREAMING_SNAKE_CASE)

																lowerCamelCase__				=self.to_np(_SCREAMING_SNAKE_CASE)
																lowerCamelCase__				=(input_np * 2_55).round() if output_type == 'pil' else input_np
																assert (
																    np.abs(in_np - out_np).max() < 1E-6
																), F"decoded output does not match input for output_type {output_type}"






						def 		lowerCAmelCase   (					self)			->  str:




											"""simple docstring"""





											lowerCamelCase__				=VaeImageProcessor(do_resize=_SCREAMING_SNAKE_CASE    ,						do_normalize=_SCREAMING_SNAKE_CASE)

											lowerCamelCase__				=self.dummy_sample.cpu().numpy().transpose(0    ,						2    ,						3    ,						1)
											lowerCamelCase__				=image_processor.numpy_to_pil(_SCREAMING_SNAKE_CASE)

											for output_type in ["pt", "np", "pil"]:
																lowerCamelCase__				=image_processor.postprocess(image_processor.preprocess(_SCREAMING_SNAKE_CASE)    ,						output_type=_SCREAMING_SNAKE_CASE)
																for i, o in zip(_SCREAMING_SNAKE_CASE    ,						_SCREAMING_SNAKE_CASE):
																					lowerCamelCase__				=np.array(_SCREAMING_SNAKE_CASE)
																					lowerCamelCase__				=self.to_np(_SCREAMING_SNAKE_CASE) if output_type == 'pil' else (self.to_np(_SCREAMING_SNAKE_CASE) * 2_55).round()
																					assert (
																					    np.abs(in_np - out_np).max() < 1E-6
																					), F"decoded output does not match input for output_type {output_type}"






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




											"""simple docstring"""





											lowerCamelCase__				=VaeImageProcessor(do_resize=_SCREAMING_SNAKE_CASE    ,						do_normalize=_SCREAMING_SNAKE_CASE)

											lowerCamelCase__				=self.dummy_sample
											lowerCamelCase__				=input_pt_ad.squeeze(0)

											lowerCamelCase__				=image_processor.postprocess(
											    image_processor.preprocess(_SCREAMING_SNAKE_CASE)    ,						output_type='np'    ,						)
											lowerCamelCase__				=image_processor.postprocess(
											    image_processor.preprocess(_SCREAMING_SNAKE_CASE)    ,						output_type='np'    ,						)

											lowerCamelCase__				=self.to_np(self.dummy_sample)
											lowerCamelCase__				=input_np_ad.squeeze(0)

											lowerCamelCase__				=image_processor.postprocess(
											    image_processor.preprocess(_SCREAMING_SNAKE_CASE)    ,						output_type='np'    ,						)
											lowerCamelCase__				=image_processor.postprocess(
											    image_processor.preprocess(_SCREAMING_SNAKE_CASE)    ,						output_type='np'    ,						)

											assert np.abs(out_pt_ad - out_pt_ad).max() < 1E-6
											assert np.abs(out_np_ad - out_np_ad).max() < 1E-6






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




											"""simple docstring"""





											lowerCamelCase__				=VaeImageProcessor(do_resize=_SCREAMING_SNAKE_CASE    ,						do_normalize=_SCREAMING_SNAKE_CASE)

											lowerCamelCase__				=self.dummy_sample
											lowerCamelCase__				=list(_SCREAMING_SNAKE_CASE)

											lowerCamelCase__				=image_processor.postprocess(
											    image_processor.preprocess(_SCREAMING_SNAKE_CASE)    ,						output_type='np'    ,						)

											lowerCamelCase__				=image_processor.postprocess(
											    image_processor.preprocess(_SCREAMING_SNAKE_CASE)    ,						output_type='np'    ,						)

											lowerCamelCase__				=self.to_np(self.dummy_sample)
											list(_SCREAMING_SNAKE_CASE)

											lowerCamelCase__				=image_processor.postprocess(
											    image_processor.preprocess(_SCREAMING_SNAKE_CASE)    ,						output_type='np'    ,						)

											lowerCamelCase__				=image_processor.postprocess(
											    image_processor.preprocess(_SCREAMING_SNAKE_CASE)    ,						output_type='np'    ,						)

											assert np.abs(out_pt_ad - out_pt_list).max() < 1E-6
											assert np.abs(out_np_ad - out_np_list).max() < 1E-6







"""simple docstring"""



from doctest import testmod
from math import sqrt




def 						lowerCamelCase_				(  __A  :		int			):
					lowerCamelCase__				=[]
					if num < 1:
										return facs
					facs.append(1			)
					if num == 1:
										return facs
					facs.append(__A			)
					for i in range(2			,	int(sqrt(__A			)			) + 1			):
										if num % i == 0:  # If i is a factor of num
															facs.append(__A			)
															lowerCamelCase__				=num // i  # num//i is the other factor of num
															if d != i:  # If d and i are distinct
																				facs.append(__A			)  # we have found another factor
					facs.sort()
					return facs


if __name__ == "__main__":
						testmod(name="factors_of_a_number", verbose=True)