




from __future__ import annotations

from math import pow, sqrt







def SCREAMING_SNAKE_CASE    (	lowercase_			,    lowercase_			,    lowercase_						)       ->	dict[str, float]:



       """simple docstring"""

       if (resistance, reactance, impedance).count(0						) != 1:
              raise ValueError('''One and only one argument must be 0'''						)
       if resistance == 0:
              return {"resistance": sqrt(pow(lowercase_			,    2						) - pow(lowercase_			,    2						)						)}
       elif reactance == 0:
              return {"reactance": sqrt(pow(lowercase_			,    2						) - pow(lowercase_			,    2						)						)}
       elif impedance == 0:
              return {"impedance": sqrt(pow(lowercase_			,    2						) + pow(lowercase_			,    2						)						)}
       else:
              raise ValueError('''Exactly one argument must be 0'''						)


if __name__ == "__main__":
  import doctest

  doctest.testmod()








_lowerCamelCase     :		dict[str, float]								=       {
    "km/h": 1.0,
    "m/s": 3.6,
    "mph": 1.609_344,
    "knot": 1.852,
}

_lowerCamelCase     :		dict[str, float]								=       {
    "km/h": 1.0,
    "m/s": 0.277_777_778,
    "mph": 0.621_371_192,
    "knot": 0.539_956_803,
}







def SCREAMING_SNAKE_CASE    (	lowercase_			,    lowercase_			,    lowercase_						)       ->	float:



       """simple docstring"""

       if unit_to not in speed_chart or unit_from not in speed_chart_inverse:
              A__							=   (
                  f"""Incorrect 'from_type' or 'to_type' value: {unit_from!r}, {unit_to!r}\n"""
                  f"""Valid values are: {", ".join(lowercase_						)}"""
              )
              raise ValueError(lowercase_						)
       return round(speed * speed_chart[unit_from] * speed_chart_inverse[unit_to]			,    3						)


if __name__ == "__main__":
  import doctest

  doctest.testmod()


