import copy
from dataclasses import dataclass
from pathlib import Path
from typing import Dict, Optional, Union




@dataclass
class  __magic_name__  :





   """simple docstring"""




   lowerCAmelCase      :    Dict  			=   None
   lowerCAmelCase      :    str  			=   False
   lowerCAmelCase      :    Optional[int]  			=   False
   lowerCAmelCase      :    str  			=   False
   lowerCAmelCase      :    List[Any]  			=   None
   lowerCAmelCase      :    str  			=   None
   lowerCAmelCase      :    Any  			=   False
   lowerCAmelCase      :    str  			=   False
   lowerCAmelCase      :    Dict  			=   False
   lowerCAmelCase      :    Any  			=   True
   lowerCAmelCase      :    Optional[Any]  			=   None
   lowerCAmelCase      :    int  			=   1
   lowerCAmelCase      :    Dict  			=   None
   lowerCAmelCase      :    Optional[int]  			=   False
   lowerCAmelCase      :    Union[str, Any]  			=   None
   lowerCAmelCase      :    int  			=   None



   def   lowerCAmelCase						(	self					:  List[str]							):



    """simple docstring"""



    return self.__class__(**{k: copy.deepcopy(A__							) for k, v in self.__dict__.items()}							)
from __future__ import annotations

UpperCAmelCase_			    =							1.6_0_2_1E-1_9  # units = C




def       lowerCAmelCase_     (		lowercase:							float  ,					lowercase:							float  ,					lowercase:							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()