"""simple docstring"""


from __future__ import annotations

# Define the Gravitational Constant G and the function
a							=6.6_7_4_3E-1_1  # unit of G : m^3 * kg^-1 * s^-2





def       lowerCamelCase_			( __lowerCAmelCase       ,   __lowerCAmelCase       ,   __lowerCAmelCase       ,   __lowerCAmelCase    )							-> dict[str, float]:




						'''simple docstring'''



						lowerCamelCase__ =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:
												lowerCamelCase__ =GRAVITATIONAL_CONSTANT * product_of_mass / (distance**2)
												return {"force": force}
						elif mass_a == 0:
												lowerCamelCase__ =(force) * (distance**2) / (GRAVITATIONAL_CONSTANT * mass_a)
												return {"mass_1": mass_a}
						elif mass_a == 0:
												lowerCamelCase__ =(force) * (distance**2) / (GRAVITATIONAL_CONSTANT * mass_a)
												return {"mass_2": mass_a}
						elif distance == 0:
												lowerCamelCase__ =(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"""


from __future__ import annotations

from enum import Enum






class        __UpperCAmelCase						(     __lowerCAmelCase     ):
				A__				:       List[Any]  							=	2_4
				A__				:       List[str]  							=	2_1
				A__				:       List[Any]  							=	1_8
				A__				:       Optional[Any]  							=	1_5
				A__				:       List[Any]  							=	1_2
				A__				:       Optional[int]  							=	9
				A__				:       List[Any]  							=	6
				A__				:       int  							=	3
				A__				:       Optional[int]  							=	2
				A__				:       int  							=	1
				A__				:       Optional[int]  							=	-1
				A__				:       Dict  							=	-2
				A__				:       Optional[Any]  							=	-3
				A__				:       str  							=	-6
				A__				:       Union[str, Any]  							=	-9
				A__				:       Optional[Any]  							=	-1_2
				A__				:       int  							=	-1_5
				A__				:       Union[str, Any]  							=	-1_8
				A__				:       Any  							=	-2_1
				A__				:       Union[str, Any]  							=	-2_4






class        __UpperCAmelCase						(     __lowerCAmelCase     ):
				A__				:       Optional[int]  							=	8
				A__				:       Any  							=	7
				A__				:       Any  							=	6
				A__				:       Tuple  							=	5
				A__				:       Optional[Any]  							=	4
				A__				:       str  							=	3
				A__				:       Dict  							=	2
				A__				:       Tuple  							=	1





def       lowerCamelCase_			( __lowerCAmelCase       ,   __lowerCAmelCase       ,   __lowerCAmelCase       ,   )							-> float:




						'''simple docstring'''



						if isinstance(__lowerCAmelCase       ,   __lowerCAmelCase    ):
												lowerCamelCase__ =SIUnit[known_prefix.lower()]
						if isinstance(__lowerCAmelCase       ,   __lowerCAmelCase    ):
												lowerCamelCase__ =SIUnit[unknown_prefix.lower()]
						lowerCamelCase__ =known_amount * (
						    10 ** (known_prefix.value - unknown_prefix.value)
						)
						return unknown_amount





def       lowerCamelCase_			( __lowerCAmelCase       ,   __lowerCAmelCase       ,   __lowerCAmelCase       ,   )							-> float:




						'''simple docstring'''



						if isinstance(__lowerCAmelCase       ,   __lowerCAmelCase    ):
												lowerCamelCase__ =BinaryUnit[known_prefix.lower()]
						if isinstance(__lowerCAmelCase       ,   __lowerCAmelCase    ):
												lowerCamelCase__ =BinaryUnit[unknown_prefix.lower()]
						lowerCamelCase__ =known_amount * (
						    2 ** ((known_prefix.value - unknown_prefix.value) * 10)
						)
						return unknown_amount


if __name__ == "__main__":
	import doctest

	doctest.testmod()


