



from __future__ import annotations

__snake_case     :Optional[Any]			       =1.6_0_2_1E-1_9  # units = C






def  lowerCamelCase_	(      lowerCAmelCase__	:	float			,	lowerCAmelCase__	:	float			,	lowerCAmelCase__	:	float			,	)       ->							tuple[str, float]:

							'''simple docstring'''






							if (conductivity, electron_conc, mobility).count(0				) != 1:
														raise ValueError('You cannot supply more or less than 2 values'				)
							elif conductivity < 0:
														raise ValueError('Conductivity cannot be negative'				)
							elif electron_conc < 0:
														raise ValueError('Electron concentration cannot be negative'				)
							elif mobility < 0:
														raise ValueError('mobility cannot be negative'				)
							elif conductivity == 0:
														return (
														    "conductivity",
														    mobility * electron_conc * ELECTRON_CHARGE,
														)
							elif electron_conc == 0:
														return (
														    "electron_conc",
														    conductivity / (mobility * ELECTRON_CHARGE),
														)
							else:
														return (
														    "mobility",
														    conductivity / (electron_conc * ELECTRON_CHARGE),
														)


if __name__ == "__main__":
				import doctest

				doctest.testmod()







from abc import ABC, abstractmethod
from argparse import ArgumentParser




class 							snake_case_       (    __UpperCamelCase      ):

						"""simple docstring"""



						@staticmethod
						@abstractmethod
						def        UpperCAmelCase__					(__UpperCAmelCase:					ArgumentParser   )    ->     Tuple:




											'''simple docstring'''



											raise NotImplementedError()



						@abstractmethod
						def        UpperCAmelCase__					(self:					List[str]   )    ->     List[str]:




											'''simple docstring'''



											raise NotImplementedError()





