





'''simple docstring'''







from __future__ import annotations

# Define the Gravitational Constant G and the function
snake_case_  :							Optional[int]            =	6.6743E-11  # unit of G : m^3 * kg^-1 * s^-2





def 							lowerCamelCase_   (	SCREAMING_SNAKE_CASE__   :      float,      SCREAMING_SNAKE_CASE__   :      float,      SCREAMING_SNAKE_CASE__   :      float,      SCREAMING_SNAKE_CASE__   :      float )			->						dict[str, float]:
						UpperCAmelCase_      :   Union[str, Any]      =	mass_a * mass_a

						if (force, mass_a, mass_a, distance).count(0 ) != 1:
												raise ValueError('''One and only one argument must be 0''' )
						if force < 0:
												raise ValueError('''Gravitational force can not be negative''' )
						if distance < 0:
												raise ValueError('''Distance can not be negative''' )
						if mass_a < 0 or mass_a < 0:
												raise ValueError('''Mass can not be negative''' )
						if force == 0:
												UpperCAmelCase_      :   Union[str, Any]      =	GRAVITATIONAL_CONSTANT * product_of_mass / (distance**2)
												return {"force": force}
						elif mass_a == 0:
												UpperCAmelCase_      :   Dict      =	(force) * (distance**2) / (GRAVITATIONAL_CONSTANT * mass_a)
												return {"mass_1": mass_a}
						elif mass_a == 0:
												UpperCAmelCase_      :   List[Any]      =	(force) * (distance**2) / (GRAVITATIONAL_CONSTANT * mass_a)
												return {"mass_2": mass_a}
						elif distance == 0:
												UpperCAmelCase_      :   List[Any]      =	(GRAVITATIONAL_CONSTANT * product_of_mass / (force)) ** 0.5
												return {"distance": distance}
						raise ValueError('''One and only one argument must be 0''' )


# Run doctest
if __name__ == "__main__":
					import doctest

					doctest.testmod()










'''simple docstring'''


import unittest
from dataclasses import dataclass
from typing import List, Union

import numpy as np
import PIL.Image

from diffusers.utils.outputs import BaseOutput







@dataclass
class 						UpperCAmelCase						(		__a):


 '''simple docstring'''




 __magic_name__       :			Union[List[PIL.Image.Image], np.ndarray]







class 						UpperCAmelCase						(		unittest.TestCase):


 '''simple docstring'''




 def    lowercase_	( self)			->   List[str]:



      """simple docstring"""







      a_									=CustomOutput(images=np.random.rand(1				,	3				,	4				,	4))

      # check every way of getting the attribute
      assert isinstance(outputs.images				,	np.ndarray)
      assert outputs.images.shape == (1, 3, 4, 4)
      assert isinstance(outputs["images"]				,	np.ndarray)
      assert outputs["images"].shape == (1, 3, 4, 4)
      assert isinstance(outputs[0]				,	np.ndarray)
      assert outputs[0].shape == (1, 3, 4, 4)

      # test with a non-tensor attribute
      a_									=CustomOutput(images=[PIL.Image.new("RGB"				,	(4, 4))])

      # check every way of getting the attribute
      assert isinstance(outputs.images				,	lowerCAmelCase_)
      assert isinstance(outputs.images[0]				,	PIL.Image.Image)
      assert isinstance(outputs["images"]				,	lowerCAmelCase_)
      assert isinstance(outputs["images"][0]				,	PIL.Image.Image)
      assert isinstance(outputs[0]				,	lowerCAmelCase_)
      assert isinstance(outputs[0][0]				,	PIL.Image.Image)




 def    lowercase_	( self)			->   Optional[int]:



      """simple docstring"""







      a_									=CustomOutput({"images": np.random.rand(1				,	3				,	4				,	4)})

      # check every way of getting the attribute
      assert isinstance(outputs.images				,	np.ndarray)
      assert outputs.images.shape == (1, 3, 4, 4)
      assert isinstance(outputs["images"]				,	np.ndarray)
      assert outputs["images"].shape == (1, 3, 4, 4)
      assert isinstance(outputs[0]				,	np.ndarray)
      assert outputs[0].shape == (1, 3, 4, 4)

      # test with a non-tensor attribute
      a_									=CustomOutput({"images": [PIL.Image.new("RGB"				,	(4, 4))]})

      # check every way of getting the attribute
      assert isinstance(outputs.images				,	lowerCAmelCase_)
      assert isinstance(outputs.images[0]				,	PIL.Image.Image)
      assert isinstance(outputs["images"]				,	lowerCAmelCase_)
      assert isinstance(outputs["images"][0]				,	PIL.Image.Image)
      assert isinstance(outputs[0]				,	lowerCAmelCase_)
      assert isinstance(outputs[0][0]				,	PIL.Image.Image)


