

"""simple docstring"""


from __future__ import annotations

from collections import namedtuple






def    a__   (   __SCREAMING_SNAKE_CASE ,			__SCREAMING_SNAKE_CASE ,			__SCREAMING_SNAKE_CASE			)     ->     tuple:
		__lowerCAmelCase:	List[Any]   				=      namedtuple("result" ,			"name value"			)
		if (voltage, current, power).count(0			) != 1:
				raise ValueError("Only one argument must be 0"			)
		elif power < 0:
				raise ValueError(
				    "Power cannot be negative in any electrical/electronics system"			)
		elif voltage == 0:
				return result("voltage" ,			power / current			)
		elif current == 0:
				return result("current" ,			power / voltage			)
		elif power == 0:
				return result("power" ,			float(round(abs(voltage * current			) ,			2			)			)			)
		else:
				raise ValueError("Exactly one argument must be 0"			)


if __name__ == "__main__":
			import doctest

			doctest.testmod()





"""simple docstring"""


from __future__ import annotations

from math import pi






def    a__   (   __SCREAMING_SNAKE_CASE ,			__SCREAMING_SNAKE_CASE ,			__SCREAMING_SNAKE_CASE			)     ->     dict[str, float]:

		if (inductance, frequency, reactance).count(0			) != 1:
				raise ValueError("One and only one argument must be 0"			)
		if inductance < 0:
				raise ValueError("Inductance cannot be negative"			)
		if frequency < 0:
				raise ValueError("Frequency cannot be negative"			)
		if reactance < 0:
				raise ValueError("Inductive reactance cannot be negative"			)
		if inductance == 0:
				return {"inductance": reactance / (2 * pi * frequency)}
		elif frequency == 0:
				return {"frequency": reactance / (2 * pi * inductance)}
		elif reactance == 0:
				return {"reactance": 2 * pi * frequency * inductance}
		else:
				raise ValueError("Exactly one argument must be 0"			)


if __name__ == "__main__":
			import doctest

			doctest.testmod()


