





"""simple docstring"""




import unittest

from diffusers.models.unet_ad_blocks import *  # noqa F403
from diffusers.utils import torch_device

from .test_unet_blocks_common import UNetBlockTesterMixin


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					Tuple      					=DownBlockaD  # noqa F405
							lowerCamelCase   :					Dict      					="""down"""






							def     __a   (   self      )	-> Union[str, Any]:
								a      :		List[Any]	=				[-0.0_232, -0.9_869, 0.8_054, -0.0_637, -0.1_688, -1.4_264, 0.4_470, -1.3_394, 0.0_904]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					int      					=ResnetDownsampleBlockaD  # noqa F405
							lowerCamelCase   :					str      					="""down"""






							def     __a   (   self      )	-> List[str]:
								a      :		Union[str, Any]	=				[0.0_710, 0.2_410, -0.7_320, -1.0_757, -1.1_343, 0.3_540, -0.0_133, -0.2_576, 0.0_948]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					Optional[int]      					=AttnDownBlockaD  # noqa F405
							lowerCamelCase   :					Optional[int]      					="""down"""






							def     __a   (   self      )	-> List[str]:
								a      :		str	=				[0.0_636, 0.8_964, -0.6_234, -1.0_131, 0.0_844, 0.4_935, 0.3_437, 0.0_911, -0.2_957]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					Dict      					=CrossAttnDownBlockaD  # noqa F405
							lowerCamelCase   :					Any      					="""down"""






							def     __a   (   self      )	-> Any:
								a,       a      :		Optional[int]	=				super().prepare_init_args_and_inputs_for_common()
								a      :		Optional[Any]	=				32
								return init_dict, inputs_dict






							def     __a   (   self      )	-> List[str]:
								a      :		Optional[Any]	=				[0.2_238, -0.7_396, -0.2_255, -0.3_829, 0.1_925, 1.1_665, 0.0_603, -0.7_295, 0.1_983]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					Optional[int]      					=SimpleCrossAttnDownBlockaD  # noqa F405
							lowerCamelCase   :					int      					="""down"""






							@property
							def     __a   (   self      )	-> List[str]:
								return super().get_dummy_input(include_encoder_hidden_states=lowerCAmelCase__      )






							def     __a   (   self      )	-> Any:
								a,       a      :		Optional[int]	=				super().prepare_init_args_and_inputs_for_common()
								a      :		str	=				32
								return init_dict, inputs_dict






							@unittest.skipIf(torch_device == "mps"      ,					"MPS result is not consistent"      )
							def     __a   (   self      )	-> Dict:
								a      :		Union[str, Any]	=				[0.7_921, -0.0_992, -0.1_962, -0.7_695, -0.4_242, 0.7_804, 0.4_737, 0.2_765, 0.3_338]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					int      					=SkipDownBlockaD  # noqa F405
							lowerCamelCase   :					Optional[int]      					="""down"""






							@property
							def     __a   (   self      )	-> Any:
								return super().get_dummy_input(include_skip_sample=lowerCAmelCase__      )






							def     __a   (   self      )	-> Dict:
								a      :		Any	=				[-0.0_845, -0.2_087, -0.2_465, 0.0_971, 0.1_900, -0.0_484, 0.2_664, 0.4_179, 0.5_069]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					List[Any]      					=AttnSkipDownBlockaD  # noqa F405
							lowerCamelCase   :					Tuple      					="""down"""






							@property
							def     __a   (   self      )	-> Union[str, Any]:
								return super().get_dummy_input(include_skip_sample=lowerCAmelCase__      )






							def     __a   (   self      )	-> Optional[Any]:
								a      :		Optional[Any]	=				[0.5_539, 0.1_609, 0.4_924, 0.0_537, -0.1_995, 0.4_050, 0.0_979, -0.2_721, -0.0_642]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					List[str]      					=DownEncoderBlockaD  # noqa F405
							lowerCamelCase   :					Optional[Any]      					="""down"""






							@property
							def     __a   (   self      )	-> int:
								return super().get_dummy_input(include_temb=lowerCAmelCase__      )






							def     __a   (   self      )	-> Union[str, Any]:
								a      :		Dict	=				{
								    "in_channels": 32,
								    "out_channels": 32,
								}
								a      :		Any	=				self.dummy_input
								return init_dict, inputs_dict






							def     __a   (   self      )	-> List[str]:
								a      :		List[str]	=				[1.1_102, 0.5_302, 0.4_872, -0.0_023, -0.8_042, 0.0_483, -0.3_489, -0.5_632, 0.7_626]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					List[Any]      					=AttnDownEncoderBlockaD  # noqa F405
							lowerCamelCase   :					Optional[Any]      					="""down"""






							@property
							def     __a   (   self      )	-> Any:
								return super().get_dummy_input(include_temb=lowerCAmelCase__      )






							def     __a   (   self      )	-> Optional[int]:
								a      :		Union[str, Any]	=				{
								    "in_channels": 32,
								    "out_channels": 32,
								}
								a      :		Union[str, Any]	=				self.dummy_input
								return init_dict, inputs_dict






							def     __a   (   self      )	-> str:
								a      :		List[Any]	=				[0.8_966, -0.1_486, 0.8_568, 0.8_141, -0.9_046, -0.1_342, -0.0_972, -0.7_417, 0.1_538]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					Dict      					=UNetMidBlockaD  # noqa F405
							lowerCamelCase   :					Tuple      					="""mid"""






							def     __a   (   self      )	-> str:
								a      :		Optional[Any]	=				{
								    "in_channels": 32,
								    "temb_channels": 128,
								}
								a      :		Union[str, Any]	=				self.dummy_input
								return init_dict, inputs_dict






							def     __a   (   self      )	-> int:
								a      :		Optional[Any]	=				[-0.1_062, 1.7_248, 0.3_494, 1.4_569, -0.0_910, -1.2_421, -0.9_984, 0.6_736, 1.0_028]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					Optional[int]      					=UNetMidBlockaDCrossAttn  # noqa F405
							lowerCamelCase   :					Optional[int]      					="""mid"""






							def     __a   (   self      )	-> Union[str, Any]:
								a,       a      :		Dict	=				super().prepare_init_args_and_inputs_for_common()
								a      :		Tuple	=				32
								return init_dict, inputs_dict






							def     __a   (   self      )	-> Optional[Any]:
								a      :		str	=				[0.0_187, 2.4_220, 0.4_484, 1.1_203, -0.6_121, -1.5_122, -0.8_270, 0.7_851, 1.8_335]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					Optional[int]      					=UNetMidBlockaDSimpleCrossAttn  # noqa F405
							lowerCamelCase   :					str      					="""mid"""






							@property
							def     __a   (   self      )	-> int:
								return super().get_dummy_input(include_encoder_hidden_states=lowerCAmelCase__      )






							def     __a   (   self      )	-> Dict:
								a,       a      :		Union[str, Any]	=				super().prepare_init_args_and_inputs_for_common()
								a      :		Tuple	=				32
								return init_dict, inputs_dict






							def     __a   (   self      )	-> Union[str, Any]:
								a      :		str	=				[0.7_143, 1.9_974, 0.5_448, 1.3_977, 0.1_282, -1.1_237, -1.4_238, 0.5_530, 0.8_880]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					Tuple      					=UpBlockaD  # noqa F405
							lowerCamelCase   :					int      					="""up"""






							@property
							def     __a   (   self      )	-> List[str]:
								return super().get_dummy_input(include_res_hidden_states_tuple=lowerCAmelCase__      )






							def     __a   (   self      )	-> str:
								a      :		Optional[int]	=				[-0.2_041, -0.4_165, -0.3_022, 0.0_041, -0.6_628, -0.7_053, 0.1_928, -0.0_325, 0.0_523]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					Dict      					=ResnetUpsampleBlockaD  # noqa F405
							lowerCamelCase   :					Any      					="""up"""






							@property
							def     __a   (   self      )	-> Any:
								return super().get_dummy_input(include_res_hidden_states_tuple=lowerCAmelCase__      )






							def     __a   (   self      )	-> Dict:
								a      :		int	=				[0.2_287, 0.3_549, -0.1_346, 0.4_797, -0.1_715, -0.9_649, 0.7_305, -0.5_864, -0.6_244]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					int      					=CrossAttnUpBlockaD  # noqa F405
							lowerCamelCase   :					Optional[int]      					="""up"""






							@property
							def     __a   (   self      )	-> Any:
								return super().get_dummy_input(include_res_hidden_states_tuple=lowerCAmelCase__      )






							def     __a   (   self      )	-> List[Any]:
								a,       a      :		Any	=				super().prepare_init_args_and_inputs_for_common()
								a      :		int	=				32
								return init_dict, inputs_dict






							def     __a   (   self      )	-> int:
								a      :		List[str]	=				[-0.1_403, -0.3_515, -0.0_420, -0.1_425, 0.3_167, 0.5_094, -0.2_181, 0.5_931, 0.5_582]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					Any      					=SimpleCrossAttnUpBlockaD  # noqa F405
							lowerCamelCase   :					Any      					="""up"""






							@property
							def     __a   (   self      )	-> str:
								return super().get_dummy_input(include_res_hidden_states_tuple=lowerCAmelCase__      ,					include_encoder_hidden_states=lowerCAmelCase__      )






							def     __a   (   self      )	-> Dict:
								a,       a      :		str	=				super().prepare_init_args_and_inputs_for_common()
								a      :		List[str]	=				32
								return init_dict, inputs_dict






							def     __a   (   self      )	-> Optional[Any]:
								a      :		Dict	=				[0.2_645, 0.1_480, 0.0_909, 0.8_044, -0.9_758, -0.9_083, 0.0_994, -1.1_453, -0.7_402]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					Any      					=AttnUpBlockaD  # noqa F405
							lowerCamelCase   :					int      					="""up"""






							@property
							def     __a   (   self      )	-> Dict:
								return super().get_dummy_input(include_res_hidden_states_tuple=lowerCAmelCase__      )






							@unittest.skipIf(torch_device == "mps"      ,					"MPS result is not consistent"      )
							def     __a   (   self      )	-> Optional[Any]:
								a      :		Any	=				[0.0_979, 0.1_326, 0.0_021, 0.0_659, 0.2_249, 0.0_059, 0.1_132, 0.5_952, 0.1_033]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					Union[str, Any]      					=SkipUpBlockaD  # noqa F405
							lowerCamelCase   :					int      					="""up"""






							@property
							def     __a   (   self      )	-> List[Any]:
								return super().get_dummy_input(include_res_hidden_states_tuple=lowerCAmelCase__      )






							def     __a   (   self      )	-> Optional[Any]:
								a      :		Optional[Any]	=				[-0.0_893, -0.1_234, -0.1_506, -0.0_332, 0.0_123, -0.0_211, 0.0_566, 0.0_143, 0.0_362]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					List[Any]      					=AttnSkipUpBlockaD  # noqa F405
							lowerCamelCase   :					Dict      					="""up"""






							@property
							def     __a   (   self      )	-> str:
								return super().get_dummy_input(include_res_hidden_states_tuple=lowerCAmelCase__      )






							def     __a   (   self      )	-> Dict:
								a      :		Optional[int]	=				[0.0_361, 0.0_617, 0.2_787, -0.0_350, 0.0_342, 0.3_421, -0.0_843, 0.0_913, 0.3_015]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					Any      					=UpDecoderBlockaD  # noqa F405
							lowerCamelCase   :					Optional[int]      					="""up"""






							@property
							def     __a   (   self      )	-> List[str]:
								return super().get_dummy_input(include_temb=lowerCAmelCase__      )






							def     __a   (   self      )	-> List[str]:
								a      :		Optional[int]	=				{"in_channels": 32, "out_channels": 32}

								a      :		Any	=				self.dummy_input
								return init_dict, inputs_dict






							def     __a   (   self      )	-> Union[str, Any]:
								a      :		Union[str, Any]	=				[0.4_404, 0.1_998, -0.9_886, -0.3_320, -0.3_128, -0.7_034, -0.6_955, -0.2_338, -0.3_137]
								super().test_output(lowerCAmelCase__      )


class        __UpperCamelCase				(						a__		,       unittest.TestCase						):
							lowerCamelCase   :					List[str]      					=AttnUpDecoderBlockaD  # noqa F405
							lowerCamelCase   :					List[Any]      					="""up"""






							@property
							def     __a   (   self      )	-> Optional[int]:
								return super().get_dummy_input(include_temb=lowerCAmelCase__      )






							def     __a   (   self      )	-> Tuple:
								a      :		List[Any]	=				{"in_channels": 32, "out_channels": 32}

								a      :		int	=				self.dummy_input
								return init_dict, inputs_dict






							def     __a   (   self      )	-> Optional[Any]:
								a      :		Any	=				[0.6_738, 0.4_491, 0.1_055, 1.0_710, 0.7_316, 0.3_339, 0.3_352, 0.1_023, 0.3_568]
								super().test_output(lowerCAmelCase__      )









'''simple docstring'''




from sympy import diff, lambdify, symbols
from sympy.functions import *  # noqa: F403






def        _lowerCAmelCase			(  __snake_case  : str ,							__snake_case  : complex ,							__snake_case  : str = "x" ,							__snake_case  : float = 10**-10 ,							__snake_case  : int = 1 ,							)     ->     complex:
     __A						: int      =       symbols(__snake_case			)
     __A						: Tuple      =       lambdify(__snake_case ,							__snake_case			)
     __A						: Any      =       lambdify(__snake_case ,							diff(__snake_case ,							__snake_case			)			)

     __A						: str      =       starting_point

     while True:
          if diff_function(__snake_case			) != 0:
               __A						: Optional[Any]      =       prev_guess - multiplicity * func(__snake_case			) / diff_function(
                   __snake_case			)
          else:
               raise ZeroDivisionError('Could not find root'			) from None

          # Precision is checked by comparing the difference of consecutive guesses
          if abs(next_guess - prev_guess			) < precision:
               return next_guess

          __A						: Dict      =       next_guess


# Let's Execute
if __name__ == "__main__":
  # Find root of trigonometric function
  # Find value of pi
  print(f"""The root of sin(x) = 0 is {newton_raphson("sin(x)", 2)}""")

  # Find root of polynomial
  # Find fourth Root of 5
  print(f"""The root of x**4 - 5 = 0 is {newton_raphson("x**4 -5", 0.4 +5j)}""")

  # Find value of e
  print(
      '''The root of log(y) - 1 = 0 is ''',
      f"""{newton_raphson("log(y) - 1", 2, variable="y")}""",
  )

  # Exponential Roots
  print(
      '''The root of exp(x) - 1 = 0 is''',
      f"""{newton_raphson("exp(x) - 1", 10, precision=0.005)}""",
  )

  # Find root of cos(x)
  print(f"""The root of cos(x) = 0 is {newton_raphson("cos(x)", 0)}""")