code: 
  '''simple docstring'''
  
  
  
  
  
  from math import radians as angle_to_radians
  from math import sin
  
  # Acceleration Constant on Earth (unit m/s^2)
  A           =   9.8_06_65
  
  def   snake_case_       (							_a     :							float ,					_a     :							float			):
  
        # Ensure valid instance
        if not isinstance(_a ,					(int, float)			):
              raise TypeError("Invalid velocity. Should be a positive number."			)
  
        if not isinstance(_a ,					(int, float)			):
              raise TypeError("Invalid angle. Range is 1-90 degrees."			)
  
        # Ensure valid angle
        if angle > 90 or angle < 1:
              raise ValueError("Invalid angle. Range is 1-90 degrees."			)
  
        # Ensure valid velocity
        if init_velocity < 0:
              raise ValueError("Invalid velocity. Should be a positive number."			)
  
  def   snake_case_       (							_a     :							float ,					_a     :							float			):
        check_args(_a ,					_a			)
        snake_case_						       =							angle_to_radians(2 * angle			)
        return round(init_velocity**2 * sin(_a			) / g ,					2			)
  
  def   snake_case_       (							_a     :							float ,					_a     :							float			):
        check_args(_a ,					_a			)
        snake_case_						       =							angle_to_radians(_a			)
        return round(init_velocity**2 * sin(_a			) ** 2 / (2 * g) ,					2			)
  
  def   snake_case_       (							_a     :							float ,					_a     :							float			):
        check_args(_a ,					_a			)
        snake_case_						       =							angle_to_radians(_a			)
        return round(2 * init_velocity * sin(_a			) / g ,					2			)
  
  def   snake_case_       (							):
        snake_case_       ,	snake_case_						       =							25, 20
        assert horizontal_distance(_a ,					_a			) == 40.97
        assert max_height(_a ,					_a			) == 3.7_3
        assert total_time(_a ,					_a			) == 1.7_4
  
  
  if __name__ == "__main__":
       from doctest import testmod
  
       testmod()
  
       # Get input from user
       A           =   float(input("Initial Velocity: ").strip())
  
       # Get input from user
       A           =   float(input("angle: ").strip())
  
       # Print results
       print()
       print("Results: ")
       print(F"""Horizontal Distance: {horizontal_distance(init_vel, angle)!s} [m]""")
       print(F"""Maximum Height: {max_height(init_vel, angle)!s} [m]""")
       print(F"""Total Time: {total_time(init_vel, angle)!s} [s]""")
  
  
style_context: 
  '''simple docstring'''
  
  
  
  
  
  def   snake_case_       (							_a     :							List[str] ,					_a     :							List[str]			):
        snake_case_						       =							1
        while b > 0:
              if b & 1:
                    res *= a
  
              a *= a
              b >>= 1
  
        return res
  def   snake_case_       (							_a     :							Union[str, Any] ,					_a     :							Tuple ,					_a     :							Optional[Any]			):
        snake_case_						       =							1
        while b > 0:
              if b & 1:
                    snake_case_						       =							((res % c) * (a % c)) % c
  
              a *= a
              b >>= 1
  
        return res
  
  