


_UpperCAmelCase			:  dict[str, float]     ={
    "joule": 1.0,
    "kilojoule": 1000,
    "megajoule": 100_0000,
    "gigajoule": 10_0000_0000,
    "wattsecond": 1.0,
    "watthour": 3600,
    "kilowatthour": 360_0000,
    "newtonmeter": 1.0,
    "calorie_nutr": 4186.8,
    "kilocalorie_nutr": 418_6800.00,
    "electronvolt": 1.6_0217_6634E-19,
    "britishthermalunit_it": 1055.0_5585,
    "footpound": 1.35_5818,
}



def 			lowerCAmelCase (		lowerCAmelCase_ ,   lowerCAmelCase_ ,   lowerCAmelCase_ )-> float:
				if to_type not in ENERGY_CONVERSION or from_type not in ENERGY_CONVERSION:
								lowerCAmelCase_ :      int    				=				(
								    f"""Incorrect 'from_type' or 'to_type' value: {from_type!r}, {to_type!r}\n"""
								    f"""Valid values are: {", ".join(lowerCAmelCase_ )}"""
								)
								raise ValueError(lowerCAmelCase_ )
				return value * ENERGY_CONVERSION[from_type] / ENERGY_CONVERSION[to_type]


if __name__ == "__main__":
						import doctest

						doctest.testmod()



from __future__ import annotations



def 			lowerCAmelCase (		lowerCAmelCase_ ,   lowerCAmelCase_ ,   lowerCAmelCase_ ,   )-> tuple:
				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()