






'''simple docstring'''







def 			SCREAMING_SNAKE_CASE_	(UpperCamelCase    ,      UpperCamelCase = False				)				->	str:

							if not isinstance(UpperCamelCase    ,      UpperCamelCase				):
														lowerCamelCase__ :     int	  =	f'''Expected string as input, found {type(UpperCamelCase				)}'''
														raise ValueError(UpperCamelCase				)
							if not isinstance(UpperCamelCase    ,      UpperCamelCase				):
														lowerCamelCase__ :     Dict	  =	f'''Expected boolean as use_pascal parameter, found {type(UpperCamelCase				)}'''
														raise ValueError(UpperCamelCase				)

							lowerCamelCase__ :     List[Any]	  =	input_str.split("""_"""				)

							lowerCamelCase__ :     int	  =	0 if use_pascal else 1

							lowerCamelCase__ :     Optional[int]	  =	words[start_index:]

							lowerCamelCase__ :     Union[str, Any]	  =	[word[0].upper() + word[1:] for word in words_to_capitalize]

							lowerCamelCase__ :     Union[str, Any]	  =	"""""" if use_pascal else words[0]

							return "".join([initial_word, *capitalized_words]				)


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

			testmod()









'''simple docstring'''







from __future__ import annotations

import typing
from collections.abc import Iterable

import numpy as np

_A     :      Optional[Any]   					=typing.Union[Iterable[float], Iterable[int], np.ndarray]  # noqa: UP007
_A     :      Optional[int]   					=typing.Union[np.floataa, int, float]  # noqa: UP007





def 			SCREAMING_SNAKE_CASE_	(UpperCamelCase    ,      UpperCamelCase				)				->	VectorOut:
							return np.sqrt(np.sum((np.asarray(UpperCamelCase				) - np.asarray(UpperCamelCase				)) ** 2				)				)





def 			SCREAMING_SNAKE_CASE_	(UpperCamelCase    ,      UpperCamelCase				)				->	VectorOut:
							return sum((va - va) ** 2 for va, va in zip(UpperCamelCase    ,      UpperCamelCase				)				) ** (1 / 2)


if __name__ == "__main__":





			def 			SCREAMING_SNAKE_CASE_	()				->	None:
										from timeit import timeit

										print("""Without Numpy"""				)
										print(
										    timeit(
										        """euclidean_distance_no_np([1, 2, 3], [4, 5, 6])"""    ,      number=10000    ,      globals=globals()    ,      )				)
										print("""With Numpy"""				)
										print(
										    timeit(
										        """euclidean_distance([1, 2, 3], [4, 5, 6])"""    ,      number=10000    ,      globals=globals()    ,      )				)



			benchmark()

