





'''simple docstring'''

from __future__ import annotations

import typing
from collections.abc import Iterable

import numpy as np

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







def    a__							(							lowercase   :	Vector,   lowercase   :	Vector )						->						VectorOut:





     """simple docstring"""

     return np.sqrt(np.sum((np.asarray(lowercase ) - np.asarray(lowercase )) ** 2 ) )







def    a__							(							lowercase   :	Vector,   lowercase   :	Vector )						->						VectorOut:





     """simple docstring"""

     return sum((va - va) ** 2 for va, va in zip(lowercase,   lowercase ) ) ** (1 / 2)


if __name__ == "__main__":







   def    a__							(							)						->						None:





        """simple docstring"""

        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()







"""simple docstring"""




def       a_ (	lowercase__ :str,			lowercase__ :int     ):
			return [sentence[i : i + ngram_size] for i in range(len(lowercase__     ) - ngram_size + 1     )]


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

					testmod()




