



from math import radians as angle_to_radians
from math import sin

# Acceleration Constant on Earth (unit m/s^2)
a_       :Tuple				  =				9.8_06_65
def 	lowercase_							(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 > 9_0 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 	lowercase_							(A			:			float		, A			:			float				):
       check_args(A		, A				)
       snake_case__							:     List[str]            =     angle_to_radians(2 * angle				)
       return round(init_velocity**2 * sin(A				) / g		, 2				)
def 	lowercase_							(A			:			float		, A			:			float				):
       check_args(A		, A				)
       snake_case__							:     int            =     angle_to_radians(A				)
       return round(init_velocity**2 * sin(A				) ** 2 / (2 * g)		, 2				)
def 	lowercase_							(A			:			float		, A			:			float				):
       check_args(A		, A				)
       snake_case__							:     Optional[int]            =     angle_to_radians(A				)
       return round(2 * init_velocity * sin(A				) / g		, 2				)
def 	lowercase_							():
       snake_case__     ,    snake_case__							:     List[Any]            =     2_5, 2_0
       assert horizontal_distance(A		, A				) == 40.97
       assert max_height(A		, A				) == 3.73
       assert total_time(A		, A				) == 1.74


if __name__ == "__main__":
 from doctest import testmod

 testmod()

 # Get input from user
 a_       :List[Any]				  =				float(input("Initial Velocity: ").strip())

 # Get input from user
 a_       :Any				  =				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]""")











def 	lowercase_							(A			:			Dict				):
       snake_case__							:     Optional[int]            =     len(A				)
       for i in range(length - 1				):
              snake_case__							:     List[str]            =     False
              for j in range(length - 1 - i				):
                     if collection[j] > collection[j + 1]:
                            snake_case__							:     Optional[Any]            =     True
                            snake_case__     ,    snake_case__							:     Dict            =     collection[j + 1], collection[j]
              if not swapped:
                     break  # Stop iteration if the collection is sorted.
       return collection


if __name__ == "__main__":
 import doctest
 import time

 doctest.testmod()

 a_       :Any				  =				input("Enter numbers separated by a comma:").strip()
 a_       :Optional[Any]				  =				[int(item) for item in user_input.split(",")]
 a_       :Optional[int]				  =				time.process_time()
 print(*bubble_sort(unsorted), sep=",")
 print(F"""Processing time: {(time.process_time() - start)%1e9 + 7}""")






