



'''simple docstring'''


import gc
import unittest

from parameterized import parameterized

from diffusers import FlaxUNetaDConditionModel
from diffusers.utils import is_flax_available
from diffusers.utils.testing_utils import load_hf_numpy, require_flax, slow


if is_flax_available():
		import jax
		import jax.numpy as jnp







@slow
@require_flax
class 	UpperCAmelCase	(		unittest.TestCase):


	'''simple docstring'''




	def       lowercase_  (   self							,  lowerCAmelCase_							,  lowerCAmelCase_) ->      List[Any]:



						"""simple docstring"""







						return f"""gaussian_noise_s={seed}_shape={'_'.join([str(SCREAMING_SNAKE_CASE_) for s in shape])}.npy"""




	def       lowercase_  (   self) ->      Tuple:



						"""simple docstring"""







						super().tearDown()
						gc.collect()




	def       lowercase_  (   self							,  lowerCAmelCase_=0							,  lowerCAmelCase_=(4, 4, 6_4, 6_4)							,  lowerCAmelCase_=False) ->      List[str]:



						"""simple docstring"""







						a_       		=jnp.bfloataa if fpaa else jnp.floataa
						a_       		=jnp.array(load_hf_numpy(self.get_file_format(SCREAMING_SNAKE_CASE_							,  SCREAMING_SNAKE_CASE_))							,  dtype=SCREAMING_SNAKE_CASE_)
						return image




	def       lowercase_  (   self							,  lowerCAmelCase_=False							,  lowerCAmelCase_="CompVis/stable-diffusion-v1-4") ->      Any:



						"""simple docstring"""







						a_       		=jnp.bfloataa if fpaa else jnp.floataa
						a_       		="bf16" if fpaa else None

						a_		,						a_       		=FlaxUNetaDConditionModel.from_pretrained(
						    SCREAMING_SNAKE_CASE_							,  subfolder="unet"							,  dtype=SCREAMING_SNAKE_CASE_							,  revision=SCREAMING_SNAKE_CASE_)
						return model, params




	def       lowercase_  (   self							,  lowerCAmelCase_=0							,  lowerCAmelCase_=(4, 7_7, 7_6_8)							,  lowerCAmelCase_=False) ->      Optional[int]:



						"""simple docstring"""







						a_       		=jnp.bfloataa if fpaa else jnp.floataa
						a_       		=jnp.array(load_hf_numpy(self.get_file_format(SCREAMING_SNAKE_CASE_							,  SCREAMING_SNAKE_CASE_))							,  dtype=SCREAMING_SNAKE_CASE_)
						return hidden_states




	@parameterized.expand(
	    [
	        # fmt: off
	        [8_3, 4, [-0.2_3_2_3, -0.1_3_0_4, 0.0_8_1_3, -0.3_0_9_3, -0.0_9_1_9, -0.1_5_7_1, -0.1_1_2_5, -0.5_8_0_6]],
	        [1_7, 0.5_5, [-0.0_8_3_1, -0.2_4_4_3, 0.0_9_0_1, -0.0_9_1_9, 0.3_3_9_6, 0.0_1_0_3, -0.3_7_4_3, 0.0_7_0_1]],
	        [8, 0.8_9, [-0.4_8_6_3, 0.0_8_5_9, 0.0_8_7_5, -0.1_6_5_8, 0.9_1_9_9, -0.0_1_1_4, 0.4_8_3_9, 0.4_6_3_9]],
	        [3, 1_0_0_0, [-0.5_6_4_9, 0.2_4_0_2, -0.5_5_1_8, 0.1_2_4_8, 1.1_3_2_8, -0.2_4_4_3, -0.0_3_2_5, -1.0_0_7_8]],
	        # fmt: on
	    ])
	def       lowercase_  (   self							,  lowerCAmelCase_							,  lowerCAmelCase_							,  lowerCAmelCase_) ->      Dict:



						"""simple docstring"""







						a_		,						a_       		=self.get_unet_model(model_id="CompVis/stable-diffusion-v1-4"							,  fpaa=SCREAMING_SNAKE_CASE_)
						a_       		=self.get_latents(SCREAMING_SNAKE_CASE_							,  fpaa=SCREAMING_SNAKE_CASE_)
						a_       		=self.get_encoder_hidden_states(SCREAMING_SNAKE_CASE_							,  fpaa=SCREAMING_SNAKE_CASE_)

						a_       		=model.apply(
						    {"params": params}							,  SCREAMING_SNAKE_CASE_							,  jnp.array(SCREAMING_SNAKE_CASE_							,  dtype=jnp.intaa)							,  encoder_hidden_states=SCREAMING_SNAKE_CASE_							,  ).sample

						assert sample.shape == latents.shape

						a_       		=jnp.asarray(jax.device_get((sample[-1, -2:, -2:, :2].flatten()))							,  dtype=jnp.floataa)
						a_       		=jnp.array(SCREAMING_SNAKE_CASE_							,  dtype=jnp.floataa)

						# Found torch (float16) and flax (bfloat16) outputs to be within this tolerance, in the same hardware
						assert jnp.allclose(SCREAMING_SNAKE_CASE_							,  SCREAMING_SNAKE_CASE_							,  atol=1e-2)




	@parameterized.expand(
	    [
	        # fmt: off
	        [8_3, 4, [0.1_5_1_4, 0.0_8_0_7, 0.1_6_2_4, 0.1_0_1_6, -0.1_8_9_6, 0.0_2_6_3, 0.0_6_7_7, 0.2_3_1_0]],
	        [1_7, 0.5_5, [0.1_1_6_4, -0.0_2_1_6, 0.0_1_7_0, 0.1_5_8_9, -0.3_1_2_0, 0.1_0_0_5, -0.0_5_8_1, -0.1_4_5_8]],
	        [8, 0.8_9, [-0.1_7_5_8, -0.0_1_6_9, 0.1_0_0_4, -0.1_4_1_1, 0.1_3_1_2, 0.1_1_0_3, -0.1_9_9_6, 0.2_1_3_9]],
	        [3, 1_0_0_0, [0.1_2_1_4, 0.0_3_5_2, -0.0_7_3_1, -0.1_5_6_2, -0.0_9_9_4, -0.0_9_0_6, -0.2_3_4_0, -0.0_5_3_9]],
	        # fmt: on
	    ])
	def       lowercase_  (   self							,  lowerCAmelCase_							,  lowerCAmelCase_							,  lowerCAmelCase_) ->      Any:



						"""simple docstring"""







						a_		,						a_       		=self.get_unet_model(model_id="stabilityai/stable-diffusion-2"							,  fpaa=SCREAMING_SNAKE_CASE_)
						a_       		=self.get_latents(SCREAMING_SNAKE_CASE_							,  shape=(4, 4, 9_6, 9_6)							,  fpaa=SCREAMING_SNAKE_CASE_)
						a_       		=self.get_encoder_hidden_states(SCREAMING_SNAKE_CASE_							,  shape=(4, 7_7, 1_0_2_4)							,  fpaa=SCREAMING_SNAKE_CASE_)

						a_       		=model.apply(
						    {"params": params}							,  SCREAMING_SNAKE_CASE_							,  jnp.array(SCREAMING_SNAKE_CASE_							,  dtype=jnp.intaa)							,  encoder_hidden_states=SCREAMING_SNAKE_CASE_							,  ).sample

						assert sample.shape == latents.shape

						a_       		=jnp.asarray(jax.device_get((sample[-1, -2:, -2:, :2].flatten()))							,  dtype=jnp.floataa)
						a_       		=jnp.array(SCREAMING_SNAKE_CASE_							,  dtype=jnp.floataa)

						# Found torch (float16) and flax (bfloat16) outputs to be within this tolerance, on the same hardware
						assert jnp.allclose(SCREAMING_SNAKE_CASE_							,  SCREAMING_SNAKE_CASE_							,  atol=1e-2)







'''simple docstring'''


import os

# Precomputes a list of the 100 first triangular numbers
lowercase							       =			[int(0.5 * n * (n + 1)) for n in range(1, 101)]






def  UpperCAmelCase_       (		):


     '''simple docstring'''







     a_       		=os.path.dirname(os.path.realpath(lowercase__       )       )
     a_       		=os.path.join(lowercase__       ,	"words.txt"       )

     a_       		=""
     with open(lowercase__       ) as f:
          a_       		=f.readline()

     a_       		=[word.strip("\""       ) for word in words.strip("\r\n"       ).split(","       )]
     a_       		=[
         word
         for word in [sum(ord(lowercase__       ) - 6_4 for x in word       ) for word in words]
         if word in TRIANGULAR_NUMBERS
     ]
     return len(lowercase__       )


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


