





'''simple docstring'''






from math import factorial

A_		:  List[str]		 =						{str(d): factorial(d) for d in range(10)}



def        UpperCamelCase__		(						__magic_name__  :   int      )				->			int:
 '''simple docstring'''






 return sum(DIGIT_FACTORIAL[d] for d in str(__magic_name__      )      )



def        UpperCamelCase__		(						)				->			int:
 '''simple docstring'''






 snake_case__     :					Any    =  7 * factorial(9      ) + 1
 return sum(i for i in range(3		,       __magic_name__      ) if sum_of_digit_factorial(__magic_name__      ) == i      )


if __name__ == "__main__":
    print(F'{solution() = }')









'''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  snake_case__						(    unittest.TestCase				):
 def A_   (   self						:							int      ,     __a						:							Optional[int]      ,     __a						:							Union[str, Any]  )      ->   str:







       '''simple docstring'''
       return f'''gaussian_noise_s={seed}_shape={"_".join([str(__a  ) for s in shape]  )}.npy'''
 def A_   (   self						:							Any  )      ->   List[str]:







       '''simple docstring'''
       # clean up the VRAM after each test
       super().tearDown()
       gc.collect()
 def A_   (   self						:							List[Any]      ,     __a						:							Union[str, Any]=0      ,     __a						:							List[str]=(4, 4, 64, 64)      ,     __a						:							Optional[Any]=False  )      ->   List[str]:







       '''simple docstring'''
       __snake_case :   Optional[Any]													=    jnp.bfloataa if fpaa else jnp.floataa
       __snake_case :   List[Any]													=    jnp.array(load_hf_numpy(self.get_file_format(__a      ,     __a  )  )      ,     dtype=__a  )
       return image
 def A_   (   self						:							Any      ,     __a						:							Any=False      ,     __a						:							Dict="CompVis/stable-diffusion-v1-4"  )      ->   Optional[int]:







       '''simple docstring'''
       __snake_case :   Tuple													=    jnp.bfloataa if fpaa else jnp.floataa
       __snake_case :   int													=    'bf16' if fpaa else None

       __snake_case							,     __snake_case :   Union[str, Any]													=    FlaxUNetaDConditionModel.from_pretrained(
           __a      ,     subfolder='unet'      ,     dtype=__a      ,     revision=__a  )
       return model, params
 def A_   (   self						:							Any      ,     __a						:							Dict=0      ,     __a						:							Dict=(4, 77, 768)      ,     __a						:							List[str]=False  )      ->   List[Any]:







       '''simple docstring'''
       __snake_case :   List[Any]													=    jnp.bfloataa if fpaa else jnp.floataa
       __snake_case :   Any													=    jnp.array(load_hf_numpy(self.get_file_format(__a      ,     __a  )  )      ,     dtype=__a  )
       return hidden_states
 @parameterized.expand(
     [
         # fmt: off
         [83, 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]],
         [17, 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, 1000, [-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 A_   (   self						:							List[Any]      ,     __a						:							List[str]      ,     __a						:							Union[str, Any]      ,     __a						:							Any  )      ->   Dict:







       '''simple docstring'''
       __snake_case							,     __snake_case :   Tuple													=    self.get_unet_model(model_id='CompVis/stable-diffusion-v1-4'      ,     fpaa=__a  )
       __snake_case :   Tuple													=    self.get_latents(__a      ,     fpaa=__a  )
       __snake_case :   int													=    self.get_encoder_hidden_states(__a      ,     fpaa=__a  )

       __snake_case :   List[str]													=    model.apply(
           {'params': params}      ,     __a      ,     jnp.array(__a      ,     dtype=jnp.intaa  )      ,     encoder_hidden_states=__a      ,     ).sample

       assert sample.shape == latents.shape

       __snake_case :   List[Any]													=    jnp.asarray(jax.device_get((sample[-1, -2:, -2:, :2].flatten())  )      ,     dtype=jnp.floataa  )
       __snake_case :   str													=    jnp.array(__a      ,     dtype=jnp.floataa  )

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





 @parameterized.expand(
     [
         # fmt: off
         [83, 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]],
         [17, 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, 1000, [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 A_   (   self						:							str      ,     __a						:							Optional[int]      ,     __a						:							Union[str, Any]      ,     __a						:							Tuple  )      ->   Optional[Any]:







       '''simple docstring'''
       __snake_case							,     __snake_case :   int													=    self.get_unet_model(model_id='stabilityai/stable-diffusion-2'      ,     fpaa=__a  )
       __snake_case :   int													=    self.get_latents(__a      ,     shape=(4, 4, 96, 96)      ,     fpaa=__a  )
       __snake_case :   Optional[Any]													=    self.get_encoder_hidden_states(__a      ,     shape=(4, 77, 1024)      ,     fpaa=__a  )

       __snake_case :   List[str]													=    model.apply(
           {'params': params}      ,     __a      ,     jnp.array(__a      ,     dtype=jnp.intaa  )      ,     encoder_hidden_states=__a      ,     ).sample

       assert sample.shape == latents.shape

       __snake_case :   List[Any]													=    jnp.asarray(jax.device_get((sample[-1, -2:, -2:, :2].flatten())  )      ,     dtype=jnp.floataa  )
       __snake_case :   int													=    jnp.array(__a      ,     dtype=jnp.floataa  )

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



