
"""simple docstring"""






import random
import unittest

import torch

from diffusers import IFImgaImgPipeline
from diffusers.utils import floats_tensor
from diffusers.utils.import_utils import is_xformers_available
from diffusers.utils.testing_utils import skip_mps, torch_device

from ..pipeline_params import (
    TEXT_GUIDED_IMAGE_VARIATION_BATCH_PARAMS,
    TEXT_GUIDED_IMAGE_VARIATION_PARAMS,
)
from ..test_pipelines_common import PipelineTesterMixin
from . import IFPipelineTesterMixin




@skip_mps
class      _SCREAMING_SNAKE_CASE   (     A__      ,					A__      ,					unittest.TestCase				):
			UpperCAmelCase_    :Any												=		IFImgaImgPipeline
			UpperCAmelCase_    :Optional[int]												=		TEXT_GUIDED_IMAGE_VARIATION_PARAMS - {"width", "height"}
			UpperCAmelCase_    :Optional[Any]												=		TEXT_GUIDED_IMAGE_VARIATION_BATCH_PARAMS
			UpperCAmelCase_    :int												=		PipelineTesterMixin.required_optional_params - {"latents"}






			def 					__lowerCAmelCase					(   self			)     ->	Optional[Any]:
						return self._get_dummy_components()






			def 					__lowerCAmelCase					(   self			,  __A			,  __A=0			)     ->	str:
						if str(__A			).startswith("""mps"""			):
									lowerCAmelCase_       :Tuple     	=    torch.manual_seed(__A			)
						else:
									lowerCAmelCase_       :Optional[int]     	=    torch.Generator(device=__A			).manual_seed(__A			)

						lowerCAmelCase_       :Union[str, Any]     	=    floats_tensor((1, 3, 32, 32)			,  rng=random.Random(__A			)			).to(__A			)

						lowerCAmelCase_       :List[str]     	=    {
						    """prompt""": """A painting of a squirrel eating a burger""",
						    """image""": image,
						    """generator""": generator,
						    """num_inference_steps""": 2,
						    """output_type""": """numpy""",
						}

						return inputs






			def 					__lowerCAmelCase					(   self			)     ->	int:
						self._test_save_load_optional_components()






			@unittest.skipIf(
			    torch_device != """cuda""" or not is_xformers_available()			,  reason="""XFormers attention is only available with CUDA and `xformers` installed"""			,  )
			def 					__lowerCAmelCase					(   self			)     ->	str:
						self._test_xformers_attention_forwardGenerator_pass(expected_max_diff=1E-3			)






			@unittest.skipIf(torch_device != """cuda"""			,  reason="""float16 requires CUDA"""			)
			def 					__lowerCAmelCase					(   self			)     ->	int:
						# Due to non-determinism in save load of the hf-internal-testing/tiny-random-t5 text encoder
						super().test_save_load_floataa(expected_max_diff=1E-1			)






			@unittest.skipIf(torch_device != """cuda"""			,  reason="""float16 requires CUDA"""			)
			def 					__lowerCAmelCase					(   self			)     ->	str:
						super().test_floataa_inference(expected_max_diff=1E-1			)






			def 					__lowerCAmelCase					(   self			)     ->	Tuple:
						self._test_attention_slicing_forward_pass(expected_max_diff=1E-2			)






			def 					__lowerCAmelCase					(   self			)     ->	Optional[Any]:
						self._test_save_load_local()






			def 					__lowerCAmelCase					(   self			)     ->	List[Any]:
						self._test_inference_batch_single_identical(
						    expected_max_diff=1E-2			,  )








"""simple docstring"""






import math






def 		_snake_case			(      lowercase__						:    int						)    ->							int:


			'''simple docstring'''





			return sum(int(lowercase__						) for digit in str(lowercase__						)						)






def 		_snake_case			(      lowercase__						:    int = 3_0						)    ->							int:


			'''simple docstring'''





			lowerCAmelCase_       :Union[str, Any]     	=    []
			for digit in range(2 ,	1_0_0						):
						for power in range(2 ,	1_0_0						):
									lowerCAmelCase_       :Tuple     	=    int(math.pow(lowercase__ ,	lowercase__						)						)
									if digit == digit_sum(lowercase__						):
												digit_to_powers.append(lowercase__						)

			digit_to_powers.sort()
			return digit_to_powers[n - 1]


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






