



"""simple docstring"""
import os
import unittest

import pytest
from parameterized import parameterized

from transformers.testing_utils import require_torch, require_torch_gpu, slow, torch_device


# skipping in unittest tests

__a     =    [(1,)]
def        A_  (      ):







						'''simple docstring'''


						snake_case_			:str						=      bool(os.getenv("""RUN_SLOW""", 0     )     )
						if run_slow:
												assert True
						else:
												assert False, "should have been skipped"
def        A_  (      ):







						'''simple docstring'''


						snake_case_			:List[Any]						=      bool(os.getenv("""RUN_SLOW""", 0     )     )
						if run_slow and torch_device == "cuda":
												assert True
						else:
												assert False, "should have been skipped"
@require_torch
class     lowerCamelCase  (      unittest.TestCase    ):






					'''simple docstring'''





					@slow
					@require_torch_gpu
					def        lowerCAmelCase_    (	self:							Optional[int]						)       ->     Optional[int]:
											check_slow_torch_cuda()






					@require_torch_gpu
					@slow
					def        lowerCAmelCase_    (	self:							Any						)       ->     Union[str, Any]:
											check_slow_torch_cuda()






					@parameterized.expand(_A						)
					@slow
					def        lowerCAmelCase_    (	self:							Any						,					snake_case:							Union[str, Any]=None						)       ->     str:
											check_slow()

@slow
@require_torch_gpu
def        A_  (      ):







						'''simple docstring'''


						check_slow_torch_cuda()
@require_torch_gpu
@slow
def        A_  (      ):







						'''simple docstring'''


						check_slow_torch_cuda()
@slow
@pytest.mark.parametrize("""param""", [1]     )
def        A_  (      _lowercase     ):







						'''simple docstring'''


						check_slow()

@pytest.mark.parametrize("""param""", [1]     )
@slow
def        A_  (      _lowercase     ):







						'''simple docstring'''


						check_slow()








"""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        A_  (      _lowercase, _lowercase     ):







						'''simple docstring'''


						if not isinstance(_lowercase, (int, float)     ):
												raise TypeError("""Invalid velocity. Should be a positive number."""     )

						if not isinstance(_lowercase, (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        A_  (      _lowercase, _lowercase     ):







						'''simple docstring'''


						check_args(_lowercase, _lowercase     )
						snake_case_			:str						=      angle_to_radians(2 * angle     )
						return round(init_velocity**2 * sin(_lowercase     ) / g, 2     )
def        A_  (      _lowercase, _lowercase     ):







						'''simple docstring'''


						check_args(_lowercase, _lowercase     )
						snake_case_			:str						=      angle_to_radians(_lowercase     )
						return round(init_velocity**2 * sin(_lowercase     ) ** 2 / (2 * g), 2     )
def        A_  (      _lowercase, _lowercase     ):







						'''simple docstring'''


						check_args(_lowercase, _lowercase     )
						snake_case_			:Optional[int]						=      angle_to_radians(_lowercase     )
						return round(2 * init_velocity * sin(_lowercase     ) / g, 2     )
def        A_  (      ):







						'''simple docstring'''


						snake_case_,	snake_case_			:List[str]						=      25, 20
						assert horizontal_distance(_lowercase, _lowercase     ) == 40.97
						assert max_height(_lowercase, _lowercase     ) == 3.73
						assert total_time(_lowercase, _lowercase     ) == 1.74


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]""")
