



from __future__ import annotations

def        __a			(   __lowerCAmelCase      ,	__lowerCAmelCase      ,	__lowerCAmelCase      ,	)     ->     tuple[str, float]:
					if (stress, tangential_force, area).count(0   ) != 1:
										raise ValueError('You cannot supply more or less than 2 values'   )
					elif stress < 0:
										raise ValueError('Stress cannot be negative'   )
					elif tangential_force < 0:
										raise ValueError('Tangential Force cannot be negative'   )
					elif area < 0:
										raise ValueError('Area cannot be negative'   )
					elif stress == 0:
										return (
										    "stress",
										    tangential_force / area,
										)
					elif tangential_force == 0:
										return (
										    "tangential_force",
										    stress * area,
										)
					else:
										return (
										    "area",
										    tangential_force / stress,
										)


if __name__ == "__main__":
			import doctest

			doctest.testmod()




from __future__ import annotations

import typing
from collections.abc import Iterable

import numpy as np

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

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

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


if __name__ == "__main__":

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

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



			benchmark()