


'''simple docstring'''




import random
import unittest

import torch

from diffusers import IFSuperResolutionPipeline
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 _snake_case   ( a__    ,   a__    ,   unittest.TestCase   ):
							"""simple docstring"""





							__a												=     IFSuperResolutionPipeline
							__a												=     TEXT_GUIDED_IMAGE_VARIATION_PARAMS - {'''width''', '''height'''}
							__a												=     TEXT_GUIDED_IMAGE_VARIATION_BATCH_PARAMS
							__a												=     PipelineTesterMixin.required_optional_params - {'''latents'''}







							def 		__SCREAMING_SNAKE_CASE(   self	)     ->str:



											"""simple docstring"""







											return self._get_superresolution_dummy_components()







							def 		__SCREAMING_SNAKE_CASE(   self			,				__A			,				__A=0	)     ->List[Any]:



											"""simple docstring"""







											if str(__A	).startswith("mps"	):
															__lowerCamelCase		:      Optional[Any]											=					torch.manual_seed(__A	)
											else:
															__lowerCamelCase		:      Any											=					torch.Generator(device=__A	).manual_seed(__A	)

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

											__lowerCamelCase		:      int											=					{
											    "prompt": "A painting of a squirrel eating a burger",
											    "image": image,
											    "generator": generator,
											    "num_inference_steps": 2,
											    "output_type": "numpy",
											}

											return inputs







							@unittest.skipIf(
							    torch_device != "cuda" or not is_xformers_available()			,				reason="XFormers attention is only available with CUDA and `xformers` installed"			,				)
							def 		__SCREAMING_SNAKE_CASE(   self	)     ->Optional[int]:



											"""simple docstring"""







											self._test_xformers_attention_forwardGenerator_pass(expected_max_diff=1E-3	)







							def 		__SCREAMING_SNAKE_CASE(   self	)     ->Dict:



											"""simple docstring"""







											self._test_save_load_optional_components()







							@unittest.skipIf(torch_device != "cuda"			,				reason="float16 requires CUDA"	)
							def 		__SCREAMING_SNAKE_CASE(   self	)     ->str:



											"""simple docstring"""







											super().test_save_load_floataa(expected_max_diff=1E-1	)







							def 		__SCREAMING_SNAKE_CASE(   self	)     ->Tuple:



											"""simple docstring"""







											self._test_attention_slicing_forward_pass(expected_max_diff=1E-2	)







							def 		__SCREAMING_SNAKE_CASE(   self	)     ->int:



											"""simple docstring"""







											self._test_save_load_local()







							def 		__SCREAMING_SNAKE_CASE(   self	)     ->List[Any]:



											"""simple docstring"""







											self._test_inference_batch_single_identical(
											    expected_max_diff=1E-2			,				)









'''simple docstring'''




def 							a_       (						lowercase    )			->str:






				'''simple docstring'''

				return " ".join(sorted(set(sentence.split()    )    )    )


if __name__ == "__main__":
				import doctest

				doctest.testmod()





