




'''simple docstring'''







from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


_lowerCamelCase							:						Dict								=  {
    'configuration_musicgen': [
        'MUSICGEN_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'MusicgenConfig',
        'MusicgenDecoderConfig',
    ],
    'processing_musicgen': ['MusicgenProcessor'],
}

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						_lowerCamelCase							:						Union[str, Any]								=  [
						    'MUSICGEN_PRETRAINED_MODEL_ARCHIVE_LIST',
						    'MusicgenForConditionalGeneration',
						    'MusicgenForCausalLM',
						    'MusicgenModel',
						    'MusicgenPreTrainedModel',
						]

if TYPE_CHECKING:
						from .configuration_musicgen import (
						    MUSICGEN_PRETRAINED_CONFIG_ARCHIVE_MAP,
						    MusicgenConfig,
						    MusicgenDecoderConfig,
						)
						from .processing_musicgen import MusicgenProcessor

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_musicgen import (
												    MUSICGEN_PRETRAINED_MODEL_ARCHIVE_LIST,
												    MusicgenForCausalLM,
												    MusicgenForConditionalGeneration,
												    MusicgenModel,
												    MusicgenPreTrainedModel,
												)

else:
						import sys

						_lowerCamelCase							:						Tuple								=  _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)











'''simple docstring'''







import unittest
from timeit import timeit






def 		_lowercase		(	lowercase_						,							lowercase_  ):



		'''simple docstring'''







		_snake_case	       =       first_num if first_num >= second_num else second_num
		_snake_case	       =       max_num
		while (common_mult % first_num > 0) or (common_mult % second_num > 0):
				common_mult += max_num
		return common_mult






def 		_lowercase		(	lowercase_						,							lowercase_  ):



		'''simple docstring'''







		return b if a == 0 else greatest_common_divisor(b % a						,							lowercase_  )






def 		_lowercase		(	lowercase_						,							lowercase_  ):



		'''simple docstring'''







		return first_num // greatest_common_divisor(lowercase_						,							lowercase_  ) * second_num






def 		_lowercase		(	):



		'''simple docstring'''







		_snake_case	       =       (
		    "from __main__ import least_common_multiple_slow, least_common_multiple_fast"
		)
		print(
		    "least_common_multiple_slow():"						,							timeit("least_common_multiple_slow(1000, 999)"						,							setup=lowercase_  )						,							)
		print(
		    "least_common_multiple_fast():"						,							timeit("least_common_multiple_fast(1000, 999)"						,							setup=lowercase_  )						,							)





class      lowerCamelCase_							(       unittest.TestCase							):




					'''simple docstring'''






					lowercase__    = (
					    (1_0, 2_0),
					    (1_3, 1_5),
					    (4, 3_1),
					    (1_0, 4_2),
					    (4_3, 3_4),
					    (5, 1_2),
					    (1_2, 2_5),
					    (1_0, 2_5),
					    (6, 9),
					)
					lowercase__    = (2_0, 1_9_5, 1_2_4, 2_1_0, 1_4_6_2, 6_0, 3_0_0, 5_0, 1_8)






					def 				__SCREAMING_SNAKE_CASE	(    self ):
							for i, (first_num, second_num) in enumerate(self.test_inputs ):
									_snake_case	       =       least_common_multiple_slow(__UpperCamelCase,  __UpperCamelCase )
									_snake_case	       =       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()





