

"""simple docstring"""





from __future__ import annotations

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



def 							_lowerCAmelCase   (    UpperCAmelCase  :				float   ,				UpperCAmelCase  :				float   ,				UpperCAmelCase  :				float   ,				UpperCAmelCase  :				float					):


					'''simple docstring'''






					UpperCamelCase__		:     Optional[int]								=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__		:     str								=GRAVITATIONAL_CONSTANT * product_of_mass / (distance**2)
										return {"force": force}
					elif mass_a == 0:
										UpperCamelCase__		:     Optional[Any]								=(force) * (distance**2) / (GRAVITATIONAL_CONSTANT * mass_a)
										return {"mass_1": mass_a}
					elif mass_a == 0:
										UpperCamelCase__		:     Any								=(force) * (distance**2) / (GRAVITATIONAL_CONSTANT * mass_a)
										return {"mass_2": mass_a}
					elif distance == 0:
										UpperCamelCase__		:     Dict								=(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"""





def 							_lowerCAmelCase   (    UpperCAmelCase  :				int					):


					'''simple docstring'''






					if not isinstance(UpperCAmelCase   ,				UpperCAmelCase					):
										raise ValueError('''double_factorial() only accepts integral values'''					)
					if n < 0:
										raise ValueError('''double_factorial() not defined for negative values'''					)
					return 1 if n <= 1 else n * double_factorial(n - 2					)


if __name__ == "__main__":
				import doctest

				doctest.testmod()


