



from collections import namedtuple

__lowerCamelCase								=     namedtuple("""from_to""", """from_ to""")

__lowerCamelCase								=     {
    """atm""": from_to(1, 1),
    """pascal""": from_to(0.0_00_00_98, 1_0_1_3_2_5),
    """bar""": from_to(0.98_69_23, 1.0_13_25),
    """kilopascal""": from_to(0.00_98_69_23, 1_0_1.3_2_5),
    """megapascal""": from_to(9.8_69_23, 0.10_13_25),
    """psi""": from_to(0.06_80_46, 14.69_59),
    """inHg""": from_to(0.0_33_42_11, 29.92_13),
    """torr""": from_to(0.00_13_15_79, 7_6_0),
}




def       UpperCAmelCase__	(							__snake_case  ,			__snake_case  ,			__snake_case							)				->	float:
  if from_type not in PRESSURE_CONVERSION:
    raise ValueError(
        F'''Invalid \'from_type\' value: {from_type!r}  Supported values are:\n'''
        + ''', '''.join(__snake_case							)							)
  if to_type not in PRESSURE_CONVERSION:
    raise ValueError(
        F'''Invalid \'to_type\' value: {to_type!r}.  Supported values are:\n'''
        + ''', '''.join(__snake_case							)							)
  return (
      value * PRESSURE_CONVERSION[from_type].from_ * PRESSURE_CONVERSION[to_type].to
  )


if __name__ == "__main__":
    import doctest

    doctest.testmod()




import math
from timeit import timeit




def       UpperCAmelCase__	(							__snake_case							)				->	int:
  _A          =      0
  _A          =      abs(__snake_case							)
  while True:
    _A          =      n // 10
    digits += 1
    if n == 0:
      break
  return digits




def       UpperCAmelCase__	(							__snake_case							)				->	int:
  return 1 if n == 0 else math.floor(math.log(abs(__snake_case							)  ,			10							) + 1							)




def       UpperCAmelCase__	(							__snake_case							)				->	int:
  return len(str(abs(__snake_case							)							)							)




def       UpperCAmelCase__	(							)				->	None:
  from collections.abc import Callable

  def benchmark_a_function(__snake_case  ,			__snake_case							) -> None:
    _A          =      F'''{func.__name__}({value})'''
    _A          =      timeit(F'''__main__.{call}'''  ,			setup='''import __main__'''							)
    print(F'''{call}: {func(__snake_case							)} -- {timing} seconds'''							)

  for value in (262_144, 1_125_899_906_842_624, 1_267_650_600_228_229_401_496_703_205_376):
    for func in (num_digits, num_digits_fast, num_digits_faster):
      benchmark_a_function(__snake_case  ,			__snake_case							)
    print()


if __name__ == "__main__":
    import doctest

    doctest.testmod()
    benchmark()