from __future__ import annotations

from collections import namedtuple






def     lowerCAmelCase_			(   _SCREAMING_SNAKE_CASE     :				float		, _SCREAMING_SNAKE_CASE     :				float		, _SCREAMING_SNAKE_CASE     :				float			):
						UpperCamelCase_		:							int  =		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()







from __future__ import annotations






def     lowerCAmelCase_			(   _SCREAMING_SNAKE_CASE     :				float		, _SCREAMING_SNAKE_CASE     :				float		, _SCREAMING_SNAKE_CASE     :				float		, ):
						if (electron_conc, hole_conc, intrinsic_conc).count(0			) != 1:
												raise ValueError("""You cannot supply more or less than 2 values"""			)
						elif electron_conc < 0:
												raise ValueError("""Electron concentration cannot be negative in a semiconductor"""			)
						elif hole_conc < 0:
												raise ValueError("""Hole concentration cannot be negative in a semiconductor"""			)
						elif intrinsic_conc < 0:
												raise ValueError(
												    """Intrinsic concentration cannot be negative in a semiconductor"""			)
						elif electron_conc == 0:
												return (
												    "electron_conc",
												    intrinsic_conc**2 / hole_conc,
												)
						elif hole_conc == 0:
												return (
												    "hole_conc",
												    intrinsic_conc**2 / electron_conc,
												)
						elif intrinsic_conc == 0:
												return (
												    "intrinsic_conc",
												    (electron_conc * hole_conc) ** 0.5,
												)
						else:
												return (-1, -1)


if __name__ == "__main__":
	import doctest

	doctest.testmod()






