




from math import asin, atan, cos, radians, sin, sqrt, tan

lowercase_								=     6378137.0
lowercase_								=     6356752.314245
lowercase_								=     637_8137



def __lowerCAmelCase (     SCREAMING_SNAKE_CASE_						,  SCREAMING_SNAKE_CASE_						,  SCREAMING_SNAKE_CASE_						,  SCREAMING_SNAKE_CASE_  ):
			lowercase__					  =				(AXIS_A - AXIS_B) / AXIS_A
			lowercase__					  =				atan((1 - flattening) * tan(radians(SCREAMING_SNAKE_CASE_  )  )  )
			lowercase__					  =				atan((1 - flattening) * tan(radians(SCREAMING_SNAKE_CASE_  )  )  )
			lowercase__					  =				radians(SCREAMING_SNAKE_CASE_  )
			lowercase__					  =				radians(SCREAMING_SNAKE_CASE_  )
			# Equation
			lowercase__					  =				sin((phi_a - phi_a) / 2  )
			lowercase__					  =				sin((lambda_a - lambda_a) / 2  )
			# Square both values
			sin_sq_phi *= sin_sq_phi
			sin_sq_lambda *= sin_sq_lambda
			lowercase__					  =				sqrt(sin_sq_phi + (cos(SCREAMING_SNAKE_CASE_  ) * cos(SCREAMING_SNAKE_CASE_  ) * sin_sq_lambda)  )
			return 2 * RADIUS * asin(SCREAMING_SNAKE_CASE_  )


if __name__ == "__main__":
							import doctest

							doctest.testmod()









import re
from pathlib import Path
from unittest import TestCase

import pytest
@pytest.mark.integration
class 				_snake_case			(					lowercase__):




				def 							A__      (						self					:						Optional[Any],					__lowercase					:						str						):

							with open(__lowercase,					encoding="utf-8"						) as input_file:
										lowercase__					  =				re.compile(R"(?!.*\b(?:encoding|rb|w|wb|w+|wb+|ab|ab+)\b)(?<=\s)(open)\((.*)\)"						)
										lowercase__					  =				input_file.read()
										lowercase__					  =				regexp.search(__lowercase						)

							return match




				def 							A__      (						self					:						str,					__lowercase					:						str						):

							with open(__lowercase,					encoding="utf-8"						) as input_file:
										lowercase__					  =				re.compile(R"#[^\r\n]*print\(|\"[^\r\n]*print\(|\"\"\".*?print\(.*?\"\"\"|(print\()",					re.DOTALL						)
										lowercase__					  =				input_file.read()
										# use `re.finditer` to handle the case where the ignored groups would be matched first by `re.search`
										lowercase__					  =				regexp.finditer(__lowercase						)

							lowercase__					  =				[match for match in matches if match is not None and match.group(1						) is not None]
							return matches[0] if matches else None




				def 							A__      (						self					:						Union[str, Any]						):
							lowercase__					  =				Path("./datasets"						)
							lowercase__					  =				list(dataset_paths.absolute().glob("**/*.py"						)						)

							for dataset in dataset_files:
										if self._no_encoding_on_file_open(str(__lowercase						)						):
													raise AssertionError(F'''open(...) must use utf-8 encoding in {dataset}'''						)




				def 							A__      (						self					:						Union[str, Any]						):
							lowercase__					  =				Path("./datasets"						)
							lowercase__					  =				list(dataset_paths.absolute().glob("**/*.py"						)						)

							for dataset in dataset_files:
										if self._no_print_statements(str(__lowercase						)						):
													raise AssertionError(F'''print statement found in {dataset}. Use datasets.logger/logging instead.'''						)




