


import unittest
from timeit import timeit



def   SCREAMING_SNAKE_CASE__						(							snake_case_,	snake_case_	)			->							int:
				A__     :							List[str]   				=first_num if first_num >= second_num else second_num
				A__     :							int   				=max_num
				while (common_mult % first_num > 0) or (common_mult % second_num > 0):
								common_mult += max_num
				return common_mult



def   SCREAMING_SNAKE_CASE__						(							snake_case_,	snake_case_	)			->							int:
				return b if a == 0 else greatest_common_divisor(b % a,	snake_case_	)



def   SCREAMING_SNAKE_CASE__						(							snake_case_,	snake_case_	)			->							int:
				return first_num // greatest_common_divisor(snake_case_,	snake_case_	) * second_num



def   SCREAMING_SNAKE_CASE__						(							)			->							List[Any]:
				A__     :							List[Any]   				=(
				    '''from __main__ import least_common_multiple_slow, least_common_multiple_fast'''
				)
				print(
				    '''least_common_multiple_slow():''',	timeit('''least_common_multiple_slow(1000, 999)''',	setup=snake_case_	),	)
				print(
				    '''least_common_multiple_fast():''',	timeit('''least_common_multiple_fast(1000, 999)''',	setup=snake_case_	),	)



class 			a      (      unittest.TestCase   ):
		__lowercase													=		(
		    (10, 20),
		    (13, 15),
		    (4, 31),
		    (10, 42),
		    (43, 34),
		    (5, 12),
		    (12, 25),
		    (10, 25),
		    (6, 9),
		)
		__lowercase													=		(20, 195, 124, 210, 1_462, 60, 300, 50, 18)






		def       lowerCAmelCase_  (  self							)->			int:
						'''simple docstring'''


						for i, (first_num, second_num) in enumerate(self.test_inputs							):
										A__     :							Any   				=least_common_multiple_slow(__UpperCamelCase	,     __UpperCamelCase							)
										A__     :							Tuple   				=least_common_multiple_fast(__UpperCamelCase	,     __UpperCamelCase							)
										with self.subTest(i=__UpperCamelCase							):
														self.assertEqual(__UpperCamelCase	,     self.expected_results[i]							)
														self.assertEqual(__UpperCamelCase	,     self.expected_results[i]							)


if __name__ == "__main__":
						benchmark()
						unittest.main()







from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_torch_available,
)


__lowerCamelCase       :       str				   =			{
    "configuration_align": [
        "ALIGN_PRETRAINED_CONFIG_ARCHIVE_MAP",
        "AlignConfig",
        "AlignTextConfig",
        "AlignVisionConfig",
    ],
    "processing_align": ["AlignProcessor"],
}

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						__lowerCamelCase       :       Dict				   =			[
						    "ALIGN_PRETRAINED_MODEL_ARCHIVE_LIST",
						    "AlignModel",
						    "AlignPreTrainedModel",
						    "AlignTextModel",
						    "AlignVisionModel",
						]

if TYPE_CHECKING:
						from .configuration_align import (
						    ALIGN_PRETRAINED_CONFIG_ARCHIVE_MAP,
						    AlignConfig,
						    AlignTextConfig,
						    AlignVisionConfig,
						)
						from .processing_align import AlignProcessor

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_align import (
												    ALIGN_PRETRAINED_MODEL_ARCHIVE_LIST,
												    AlignModel,
												    AlignPreTrainedModel,
												    AlignTextModel,
												    AlignVisionModel,
												)

else:
						import sys

						__lowerCamelCase       :       List[str]				   =			_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)



