

from math import sqrt







def 			A_      (    _UpperCAmelCase    ):
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ) and (
						    number >= 0
						), "'number' must been an int and positive"

						SCREAMING_SNAKE_CASE_: Optional[int]  		=       True

						# 0 and 1 are none primes.
						if number <= 1:
												SCREAMING_SNAKE_CASE_: List[Any]  		=       False

						for divisor in range(2				,	int(round(sqrt(_UpperCAmelCase    )    )    ) + 1    ):
												# if 'number' divisible by 'divisor' then sets 'status'
												# of false and break up the loop.
												if number % divisor == 0:
																		SCREAMING_SNAKE_CASE_: Union[str, Any]  		=       False
																		break

    # precondition
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ), "'status' must been from type bool"

						return status







def 			A_      (    _UpperCAmelCase    ):
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ) and (n > 2), "'N' must been an int and > 2"

						# beginList: contains all natural numbers from 2 up to N
						SCREAMING_SNAKE_CASE_: List[str]  		=       list(range(2				,	n + 1    )    )

						SCREAMING_SNAKE_CASE_: Tuple  		=       []  # this list will be returns.

						# actual sieve of erathostenes
						for i in range(len(_UpperCAmelCase    )    ):
												for j in range(i + 1				,	len(_UpperCAmelCase    )    ):
																		if (begin_list[i] != 0) and (begin_list[j] % begin_list[i] == 0):
																								SCREAMING_SNAKE_CASE_: List[Any]  		=       0

    # filters actual prime numbers.
						SCREAMING_SNAKE_CASE_: str  		=       [x for x in begin_list if x != 0]

						# precondition
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ), "'ans' must been from type list"

						return ans







def 			A_      (    _UpperCAmelCase    ):
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ) and (n > 2), "'N' must been an int and > 2"

						SCREAMING_SNAKE_CASE_: List[str]  		=       []

						# iterates over all numbers between 2 up to N+1
						# if a number is prime then appends to list 'ans'
						for number in range(2				,	n + 1    ):
												if is_prime(_UpperCAmelCase    ):
																		ans.append(_UpperCAmelCase    )

    # precondition
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ), "'ans' must been from type list"

						return ans







def 			A_      (    _UpperCAmelCase    ):
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ) and number >= 0, "'number' must been an int and >= 0"

						SCREAMING_SNAKE_CASE_: Dict  		=       []  # this list will be returns of the function.

						# potential prime number factors.

						SCREAMING_SNAKE_CASE_: Union[str, Any]  		=       2

						SCREAMING_SNAKE_CASE_: List[str]  		=       number

						if number == 0 or number == 1:
												ans.append(_UpperCAmelCase    )

						# if 'number' not prime then builds the prime factorization of 'number'
						elif not is_prime(_UpperCAmelCase    ):
												while quotient != 1:
																		if is_prime(_UpperCAmelCase    ) and (quotient % factor == 0):
																								ans.append(_UpperCAmelCase    )
																								quotient /= factor
																		else:
																								factor += 1

						else:
												ans.append(_UpperCAmelCase    )

						# precondition
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ), "'ans' must been from type list"

						return ans







def 			A_      (    _UpperCAmelCase    ):
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ) and (
						    number >= 0
						), "'number' bust been an int and >= 0"

						SCREAMING_SNAKE_CASE_: int  		=       0

						# prime factorization of 'number'
						SCREAMING_SNAKE_CASE_: List[Any]  		=       prime_factorization(_UpperCAmelCase    )

						SCREAMING_SNAKE_CASE_: Tuple  		=       max(_UpperCAmelCase    )

						# precondition
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ), "'ans' must been from type int"

						return ans







def 			A_      (    _UpperCAmelCase    ):
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ) and (
						    number >= 0
						), "'number' bust been an int and >= 0"

						SCREAMING_SNAKE_CASE_: Optional[Any]  		=       0

						# prime factorization of 'number'
						SCREAMING_SNAKE_CASE_: Dict  		=       prime_factorization(_UpperCAmelCase    )

						SCREAMING_SNAKE_CASE_: Dict  		=       min(_UpperCAmelCase    )

						# precondition
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ), "'ans' must been from type int"

						return ans







def 			A_      (    _UpperCAmelCase    ):
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ), "'number' must been an int"
						assert isinstance(number % 2 == 0				,	_UpperCAmelCase    ), "compare bust been from type bool"

						return number % 2 == 0







def 			A_      (    _UpperCAmelCase    ):
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ), "'number' must been an int"
						assert isinstance(number % 2 != 0				,	_UpperCAmelCase    ), "compare bust been from type bool"

						return number % 2 != 0







def 			A_      (    _UpperCAmelCase    ):
						assert (
						    isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ) and (number > 2) and is_even(_UpperCAmelCase    )
						), "'number' must been an int, even and > 2"

						SCREAMING_SNAKE_CASE_: Dict  		=       []  # this list will returned

						# creates a list of prime numbers between 2 up to 'number'
						SCREAMING_SNAKE_CASE_: Optional[int]  		=       get_prime_numbers(_UpperCAmelCase    )
						SCREAMING_SNAKE_CASE_: str  		=       len(_UpperCAmelCase    )

						# run variable for while-loops.
						SCREAMING_SNAKE_CASE_: Any  		=       0
						SCREAMING_SNAKE_CASE_: List[str]  		=       None

						# exit variable. for break up the loops
						SCREAMING_SNAKE_CASE_: int  		=       True

						while i < len_pn and loop:
												SCREAMING_SNAKE_CASE_: str  		=       i + 1

												while j < len_pn and loop:
																		if prime_numbers[i] + prime_numbers[j] == number:
																								SCREAMING_SNAKE_CASE_: Any  		=       False
																								ans.append(prime_numbers[i]    )
																								ans.append(prime_numbers[j]    )

																		j += 1

												i += 1

						# precondition
						assert (
						    isinstance(_UpperCAmelCase				,	_UpperCAmelCase    )
						    and (len(_UpperCAmelCase    ) == 2)
						    and (ans[0] + ans[1] == number)
						    and is_prime(ans[0]    )
						    and is_prime(ans[1]    )
						), "'ans' must contains two primes. And sum of elements must been eq 'number'"

						return ans







def 			A_      (    _UpperCAmelCase				,	_UpperCAmelCase    ):
						assert (
						    isinstance(_UpperCAmelCase				,	_UpperCAmelCase    )
						    and isinstance(_UpperCAmelCase				,	_UpperCAmelCase    )
						    and (numbera >= 0)
						    and (numbera >= 0)
						), "'number1' and 'number2' must been positive integer."

						SCREAMING_SNAKE_CASE_: Dict  		=       0

						while numbera != 0:
												SCREAMING_SNAKE_CASE_: Union[str, Any]  		=       numbera % numbera
												SCREAMING_SNAKE_CASE_: List[str]  		=       numbera
												SCREAMING_SNAKE_CASE_: Tuple  		=       rest

						# precondition
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ) and (
						    numbera >= 0
						), "'number' must been from type int and positive"

						return numbera







def 			A_      (    _UpperCAmelCase				,	_UpperCAmelCase    ):
						assert (
						    isinstance(_UpperCAmelCase				,	_UpperCAmelCase    )
						    and isinstance(_UpperCAmelCase				,	_UpperCAmelCase    )
						    and (numbera >= 1)
						    and (numbera >= 1)
						), "'number1' and 'number2' must been positive integer."

						SCREAMING_SNAKE_CASE_: str  		=       1  # actual answer that will be return.

						# for kgV (x,1)
						if numbera > 1 and numbera > 1:
												# builds the prime factorization of 'number1' and 'number2'
												SCREAMING_SNAKE_CASE_: Optional[int]  		=       prime_factorization(_UpperCAmelCase    )
												SCREAMING_SNAKE_CASE_: Union[str, Any]  		=       prime_factorization(_UpperCAmelCase    )

						elif numbera == 1 or numbera == 1:
												SCREAMING_SNAKE_CASE_: int  		=       []
												SCREAMING_SNAKE_CASE_: Any  		=       []
												SCREAMING_SNAKE_CASE_: str  		=       max(_UpperCAmelCase				,	_UpperCAmelCase    )

						SCREAMING_SNAKE_CASE_: str  		=       0
						SCREAMING_SNAKE_CASE_: str  		=       0

						SCREAMING_SNAKE_CASE_: Any  		=       []  # captured numbers int both 'primeFac1' and 'primeFac2'

						# iterates through primeFac1
						for n in prime_fac_a:
												if n not in done:
																		if n in prime_fac_a:
																								SCREAMING_SNAKE_CASE_: Any  		=       prime_fac_a.count(_UpperCAmelCase    )
																								SCREAMING_SNAKE_CASE_: Union[str, Any]  		=       prime_fac_a.count(_UpperCAmelCase    )

																								for _ in range(max(_UpperCAmelCase				,	_UpperCAmelCase    )    ):
																														ans *= n

																		else:
																								SCREAMING_SNAKE_CASE_: int  		=       prime_fac_a.count(_UpperCAmelCase    )

																								for _ in range(_UpperCAmelCase    ):
																														ans *= n

																		done.append(_UpperCAmelCase    )

    # iterates through primeFac2
						for n in prime_fac_a:
												if n not in done:
																		SCREAMING_SNAKE_CASE_: Union[str, Any]  		=       prime_fac_a.count(_UpperCAmelCase    )

																		for _ in range(_UpperCAmelCase    ):
																								ans *= n

																		done.append(_UpperCAmelCase    )

    # precondition
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ) and (
						    ans >= 0
						), "'ans' must been from type int and positive"

						return ans







def 			A_      (    _UpperCAmelCase    ):
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ) and (n >= 0), "'number' must been a positive int"

						SCREAMING_SNAKE_CASE_: List[str]  		=       0
						SCREAMING_SNAKE_CASE_: Any  		=       2  # this variable holds the answer

						while index < n:
												index += 1

												ans += 1  # counts to the next number

												# if ans not prime then
												# runs to the next prime number.
												while not is_prime(_UpperCAmelCase    ):
																		ans += 1

    # precondition
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ) and is_prime(
						    _UpperCAmelCase    ), "'ans' must been a prime number and from type int"

						return ans







def 			A_      (    _UpperCAmelCase				,	_UpperCAmelCase    ):
						assert (
						    is_prime(_UpperCAmelCase    ) and is_prime(_UpperCAmelCase    ) and (p_number_a < p_number_a)
						), "The arguments must been prime numbers and 'pNumber1' < 'pNumber2'"

						SCREAMING_SNAKE_CASE_: List[str]  		=       p_number_a + 1  # jump to the next number

						SCREAMING_SNAKE_CASE_: int  		=       []  # this list will be returns.

						# if number is not prime then
						# fetch the next prime number.
						while not is_prime(_UpperCAmelCase    ):
												number += 1

						while number < p_number_a:
												ans.append(_UpperCAmelCase    )

												number += 1

												# fetch the next prime number.
												while not is_prime(_UpperCAmelCase    ):
																		number += 1

    # precondition
						assert (
						    isinstance(_UpperCAmelCase				,	_UpperCAmelCase    )
						    and ans[0] != p_number_a
						    and ans[len(_UpperCAmelCase    ) - 1] != p_number_a
						), "'ans' must been a list without the arguments"

						# 'ans' contains not 'pNumber1' and 'pNumber2' !
						return ans







def 			A_      (    _UpperCAmelCase    ):
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ) and (n >= 1), "'n' must been int and >= 1"

						SCREAMING_SNAKE_CASE_: Optional[int]  		=       []  # will be returned.

						for divisor in range(1				,	n + 1    ):
												if n % divisor == 0:
																		ans.append(_UpperCAmelCase    )

    # precondition
						assert ans[0] == 1 and ans[len(_UpperCAmelCase    ) - 1] == n, "Error in function getDivisiors(...)"

						return ans







def 			A_      (    _UpperCAmelCase    ):
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ) and (
						    number > 1
						), "'number' must been an int and >= 1"

						SCREAMING_SNAKE_CASE_: Optional[Any]  		=       get_divisors(_UpperCAmelCase    )

						# precondition
						assert (
						    isinstance(_UpperCAmelCase				,	_UpperCAmelCase    )
						    and (divisors[0] == 1)
						    and (divisors[len(_UpperCAmelCase    ) - 1] == number)
						), "Error in help-function getDivisiors(...)"

						# summed all divisors up to 'number' (exclusive), hence [:-1]
						return sum(divisors[:-1]    ) == number







def 			A_      (    _UpperCAmelCase				,	_UpperCAmelCase    ):
						assert (
						    isinstance(_UpperCAmelCase				,	_UpperCAmelCase    )
						    and isinstance(_UpperCAmelCase				,	_UpperCAmelCase    )
						    and (denominator != 0)
						), "The arguments must been from type int and 'denominator' != 0"

						# build the greatest common divisor of numerator and denominator.
						SCREAMING_SNAKE_CASE_: Union[str, Any]  		=       gcd(abs(_UpperCAmelCase    )				,	abs(_UpperCAmelCase    )    )

						# precondition
						assert (
						    isinstance(_UpperCAmelCase				,	_UpperCAmelCase    )
						    and (numerator % gcd_of_fraction == 0)
						    and (denominator % gcd_of_fraction == 0)
						), "Error in function gcd(...,...)"

						return (numerator // gcd_of_fraction, denominator // gcd_of_fraction)







def 			A_      (    _UpperCAmelCase    ):
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ) and (n >= 0), "'n' must been a int and >= 0"

						SCREAMING_SNAKE_CASE_: Dict  		=       1  # this will be return.

						for factor in range(1				,	n + 1    ):
												ans *= factor

						return ans







def 			A_      (    _UpperCAmelCase    ):
						assert isinstance(_UpperCAmelCase				,	_UpperCAmelCase    ) and (n >= 0), "'n' must been an int and >= 0"

						SCREAMING_SNAKE_CASE_: Optional[int]  		=       0
						SCREAMING_SNAKE_CASE_: Tuple  		=       1
						SCREAMING_SNAKE_CASE_: Any  		=       1  # this will be return

						for _ in range(n - 1    ):
												SCREAMING_SNAKE_CASE_: Optional[int]  		=       ans
												ans += fiba
												SCREAMING_SNAKE_CASE_: Union[str, Any]  		=       tmp

						return ans









import gc
import unittest

import numpy as np
import torch
from transformers import CLIPTextConfig, CLIPTextModelWithProjection, CLIPTokenizer

from diffusers import HeunDiscreteScheduler, PriorTransformer, ShapEPipeline
from diffusers.pipelines.shap_e import ShapERenderer
from diffusers.utils import load_numpy, slow
from diffusers.utils.testing_utils import require_torch_gpu, torch_device

from ..test_pipelines_common import PipelineTesterMixin, assert_mean_pixel_difference



class   __lowercase				( UpperCAmelCase_		,       unittest.TestCase	):




			"""simple docstring"""







			_UpperCAmelCase   :							List[str]										=     ShapEPipeline
			_UpperCAmelCase   :							Tuple										=     ['''prompt''']
			_UpperCAmelCase   :							Dict										=     ['''prompt''']
			_UpperCAmelCase   :							Any										=     [
			    '''num_images_per_prompt''',
			    '''num_inference_steps''',
			    '''generator''',
			    '''latents''',
			    '''guidance_scale''',
			    '''frame_size''',
			    '''output_type''',
			    '''return_dict''',
			]
			_UpperCAmelCase   :							Optional[int]										=     False



			@property
			def        _SCREAMING_SNAKE_CASE			( self  :     List[str]):
									return 32



			@property
			def        _SCREAMING_SNAKE_CASE			( self  :     List[str]):
									return 32



			@property
			def        _SCREAMING_SNAKE_CASE			( self  :     int):
									return self.time_input_dim * 4



			@property
			def        _SCREAMING_SNAKE_CASE			( self  :     Optional[int]):
									return 8



			@property
			def        _SCREAMING_SNAKE_CASE			( self  :     int):
									SCREAMING_SNAKE_CASE_: str  		=       CLIPTokenizer.from_pretrained("hf-internal-testing/tiny-random-clip")
									return tokenizer



			@property
			def        _SCREAMING_SNAKE_CASE			( self  :     Union[str, Any]):
									torch.manual_seed(0)
									SCREAMING_SNAKE_CASE_: Optional[int]  		=       CLIPTextConfig(
									    bos_token_id=0   ,						eos_token_id=2   ,						hidden_size=self.text_embedder_hidden_size   ,						projection_dim=self.text_embedder_hidden_size   ,						intermediate_size=37   ,						layer_norm_eps=1E-05   ,						num_attention_heads=4   ,						num_hidden_layers=5   ,						pad_token_id=1   ,						vocab_size=1000   ,						)
									return CLIPTextModelWithProjection(lowerCAmelCase__)



			@property
			def        _SCREAMING_SNAKE_CASE			( self  :     Optional[Any]):
									torch.manual_seed(0)

									SCREAMING_SNAKE_CASE_: Tuple  		=       {
									    "num_attention_heads": 2,
									    "attention_head_dim": 16,
									    "embedding_dim": self.time_input_dim,
									    "num_embeddings": 32,
									    "embedding_proj_dim": self.text_embedder_hidden_size,
									    "time_embed_dim": self.time_embed_dim,
									    "num_layers": 1,
									    "clip_embed_dim": self.time_input_dim * 2,
									    "additional_embeddings": 0,
									    "time_embed_act_fn": "gelu",
									    "norm_in_type": "layer",
									    "encoder_hid_proj_type": None,
									    "added_emb_type": None,
									}

									SCREAMING_SNAKE_CASE_: Any  		=       PriorTransformer(**lowerCAmelCase__)
									return model



			@property
			def        _SCREAMING_SNAKE_CASE			( self  :     Dict):
									torch.manual_seed(0)

									SCREAMING_SNAKE_CASE_: Union[str, Any]  		=       {
									    "param_shapes": (
									        (self.renderer_dim, 93),
									        (self.renderer_dim, 8),
									        (self.renderer_dim, 8),
									        (self.renderer_dim, 8),
									    ),
									    "d_latent": self.time_input_dim,
									    "d_hidden": self.renderer_dim,
									    "n_output": 12,
									    "background": (
									        0.1,
									        0.1,
									        0.1,
									    ),
									}
									SCREAMING_SNAKE_CASE_: Optional[int]  		=       ShapERenderer(**lowerCAmelCase__)
									return model



			def        _SCREAMING_SNAKE_CASE			( self  :     List[str]):
									SCREAMING_SNAKE_CASE_: Dict  		=       self.dummy_prior
									SCREAMING_SNAKE_CASE_: Optional[Any]  		=       self.dummy_text_encoder
									SCREAMING_SNAKE_CASE_: Union[str, Any]  		=       self.dummy_tokenizer
									SCREAMING_SNAKE_CASE_: List[str]  		=       self.dummy_renderer

									SCREAMING_SNAKE_CASE_: Any  		=       HeunDiscreteScheduler(
									    beta_schedule="exp"   ,						num_train_timesteps=1024   ,						prediction_type="sample"   ,						use_karras_sigmas=lowerCAmelCase__   ,						clip_sample=lowerCAmelCase__   ,						clip_sample_range=1.0   ,						)
									SCREAMING_SNAKE_CASE_: Optional[int]  		=       {
									    "prior": prior,
									    "text_encoder": text_encoder,
									    "tokenizer": tokenizer,
									    "renderer": renderer,
									    "scheduler": scheduler,
									}

									return components



			def        _SCREAMING_SNAKE_CASE			( self  :     Any   ,						lowerCAmelCase__  :     Optional[int]   ,						lowerCAmelCase__  :     List[Any]=0):
									if str(lowerCAmelCase__).startswith("mps"):
															SCREAMING_SNAKE_CASE_: Optional[Any]  		=       torch.manual_seed(lowerCAmelCase__)
									else:
															SCREAMING_SNAKE_CASE_: Any  		=       torch.Generator(device=lowerCAmelCase__).manual_seed(lowerCAmelCase__)
									SCREAMING_SNAKE_CASE_: Union[str, Any]  		=       {
									    "prompt": "horse",
									    "generator": generator,
									    "num_inference_steps": 1,
									    "frame_size": 32,
									    "output_type": "np",
									}
									return inputs



			def        _SCREAMING_SNAKE_CASE			( self  :     Dict):
									SCREAMING_SNAKE_CASE_: str  		=       "cpu"

									SCREAMING_SNAKE_CASE_: Tuple  		=       self.get_dummy_components()

									SCREAMING_SNAKE_CASE_: Dict  		=       self.pipeline_class(**lowerCAmelCase__)
									SCREAMING_SNAKE_CASE_: Any  		=       pipe.to(lowerCAmelCase__)

									pipe.set_progress_bar_config(disable=lowerCAmelCase__)

									SCREAMING_SNAKE_CASE_: Optional[int]  		=       pipe(**self.get_dummy_inputs(lowerCAmelCase__))
									SCREAMING_SNAKE_CASE_: Optional[Any]  		=       output.images[0]
									SCREAMING_SNAKE_CASE_: Any  		=       image[0, -3:, -3:, -1]

									assert image.shape == (20, 32, 32, 3)

									SCREAMING_SNAKE_CASE_: Union[str, Any]  		=       np.array(
									    [
									        0.0003_9216,
									        0.0003_9216,
									        0.0003_9216,
									        0.0003_9216,
									        0.0003_9216,
									        0.0003_9216,
									        0.0003_9216,
									        0.0003_9216,
									        0.0003_9216,
									    ])

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



			def        _SCREAMING_SNAKE_CASE			( self  :     Union[str, Any]):
									# NOTE: Larger batch sizes cause this test to timeout, only test on smaller batches
									self._test_inference_batch_consistent(batch_sizes=[1, 2])



			def        _SCREAMING_SNAKE_CASE			( self  :     Any):
									SCREAMING_SNAKE_CASE_: Dict  		=       torch_device == "cpu"
									SCREAMING_SNAKE_CASE_: List[Any]  		=       True

									self._test_inference_batch_single_identical(
									    batch_size=2   ,						test_max_difference=lowerCAmelCase__   ,						relax_max_difference=lowerCAmelCase__   ,						)




			def        _SCREAMING_SNAKE_CASE			( self  :     int):
									SCREAMING_SNAKE_CASE_: Dict  		=       self.get_dummy_components()
									SCREAMING_SNAKE_CASE_: str  		=       self.pipeline_class(**lowerCAmelCase__)
									SCREAMING_SNAKE_CASE_: Tuple  		=       pipe.to(lowerCAmelCase__)
									pipe.set_progress_bar_config(disable=lowerCAmelCase__)

									SCREAMING_SNAKE_CASE_: List[Any]  		=       1
									SCREAMING_SNAKE_CASE_: Any  		=       2

									SCREAMING_SNAKE_CASE_: Dict  		=       self.get_dummy_inputs(lowerCAmelCase__)

									for key in inputs.keys():
															if key in self.batch_params:
																					SCREAMING_SNAKE_CASE_: List[Any]  		=       batch_size * [inputs[key]]

									SCREAMING_SNAKE_CASE_: Tuple  		=       pipe(**lowerCAmelCase__   ,						num_images_per_prompt=lowerCAmelCase__)[0]

									assert images.shape[0] == batch_size * num_images_per_prompt







@slow
@require_torch_gpu
class   __lowercase				( unittest.TestCase	):




			"""simple docstring"""







			def        _SCREAMING_SNAKE_CASE			( self  :     Any):
									# clean up the VRAM after each test
									super().tearDown()
									gc.collect()
									torch.cuda.empty_cache()




			def        _SCREAMING_SNAKE_CASE			( self  :     str):
									SCREAMING_SNAKE_CASE_: List[str]  		=       load_numpy(
									    "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
									    "/shap_e/test_shap_e_np_out.npy")
									SCREAMING_SNAKE_CASE_: List[str]  		=       ShapEPipeline.from_pretrained("openai/shap-e")
									SCREAMING_SNAKE_CASE_: Optional[int]  		=       pipe.to(lowerCAmelCase__)
									pipe.set_progress_bar_config(disable=lowerCAmelCase__)

									SCREAMING_SNAKE_CASE_: int  		=       torch.Generator(device=lowerCAmelCase__).manual_seed(0)

									SCREAMING_SNAKE_CASE_: int  		=       pipe(
									    "a shark"   ,						generator=lowerCAmelCase__   ,						guidance_scale=15.0   ,						num_inference_steps=64   ,						frame_size=64   ,						output_type="np"   ,						).images[0]

									assert images.shape == (20, 64, 64, 3)

									assert_mean_pixel_difference(lowerCAmelCase__   ,						lowerCAmelCase__)






