





from __future__ import annotations





def 	a_    (							_lowercase	,						_lowercase	,						_lowercase	,						):





						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()










"""simple docstring"""




def 	a_    (							_lowercase	,						_lowercase       ):
						if discount_rate < 0:
												raise ValueError('''Discount rate cannot be negative'''       )
						if not cash_flows:
												raise ValueError('''Cash flows list cannot be empty'''       )
						_UpperCamelCase      : Optional[int]         =   sum(
						    cash_flow / ((1 + discount_rate) ** i) for i, cash_flow in enumerate(_lowercase       )       )
						return round(_lowercase	,						ndigits=2       )


if __name__ == "__main__":
						import doctest

						doctest.testmod()



