





import unittest
from timeit import timeit




def        lowerCAmelCase_       (							UpperCamelCase_    ,						UpperCamelCase_     )   ->						int:
       UpperCamelCase_      				=     first_num if first_num >= second_num else second_num
       UpperCamelCase_      				=     max_num
       while (common_mult % first_num > 0) or (common_mult % second_num > 0):
              common_mult += max_num
       return common_mult




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




def        lowerCAmelCase_       (							UpperCamelCase_    ,						UpperCamelCase_     )   ->						int:
       return first_num // greatest_common_divisor(UpperCamelCase_    ,						UpperCamelCase_     ) * second_num




def        lowerCAmelCase_       (							)   ->						Dict:
       UpperCamelCase_      				=     (
           "from __main__ import least_common_multiple_slow, least_common_multiple_fast"
       )
       print(
           "least_common_multiple_slow():"    ,						timeit("least_common_multiple_slow(1000, 999)"    ,						setup=UpperCamelCase_     )    ,						)
       print(
           "least_common_multiple_fast():"    ,						timeit("least_common_multiple_fast(1000, 999)"    ,						setup=UpperCamelCase_     )    ,						)



class 							_UpperCamelCase    (		unittest.TestCase   ):
       _UpperCamelCase :    str   			=      (
           (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),
       )
       _UpperCamelCase :    Optional[int]   			=      (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 lowercase       (						self:       str						)				->       List[str]:




              """simple docstring"""


              for i, (first_num, second_num) in enumerate(self.test_inputs						):
                     UpperCamelCase_      				=     least_common_multiple_slow(_SCREAMING_SNAKE_CASE    ,      _SCREAMING_SNAKE_CASE						)
                     UpperCamelCase_      				=     least_common_multiple_fast(_SCREAMING_SNAKE_CASE    ,      _SCREAMING_SNAKE_CASE						)
                     with self.subTest(i=_SCREAMING_SNAKE_CASE						):
                            self.assertEqual(_SCREAMING_SNAKE_CASE    ,      self.expected_results[i]						)
                            self.assertEqual(_SCREAMING_SNAKE_CASE    ,      self.expected_results[i]						)


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








from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


_UpperCAmelCase				       = {
    'configuration_mpnet': ['MPNET_PRETRAINED_CONFIG_ARCHIVE_MAP', 'MPNetConfig'],
    'tokenization_mpnet': ['MPNetTokenizer'],
}

try:
     if not is_tokenizers_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     _UpperCAmelCase				       = ['MPNetTokenizerFast']

try:
     if not is_torch_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     _UpperCAmelCase				       = [
         'MPNET_PRETRAINED_MODEL_ARCHIVE_LIST',
         'MPNetForMaskedLM',
         'MPNetForMultipleChoice',
         'MPNetForQuestionAnswering',
         'MPNetForSequenceClassification',
         'MPNetForTokenClassification',
         'MPNetLayer',
         'MPNetModel',
         'MPNetPreTrainedModel',
     ]

try:
     if not is_tf_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     _UpperCAmelCase				       = [
         'TF_MPNET_PRETRAINED_MODEL_ARCHIVE_LIST',
         'TFMPNetEmbeddings',
         'TFMPNetForMaskedLM',
         'TFMPNetForMultipleChoice',
         'TFMPNetForQuestionAnswering',
         'TFMPNetForSequenceClassification',
         'TFMPNetForTokenClassification',
         'TFMPNetMainLayer',
         'TFMPNetModel',
         'TFMPNetPreTrainedModel',
     ]


if TYPE_CHECKING:
     from .configuration_mpnet import MPNET_PRETRAINED_CONFIG_ARCHIVE_MAP, MPNetConfig
     from .tokenization_mpnet import MPNetTokenizer

     try:
          if not is_tokenizers_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .tokenization_mpnet_fast import MPNetTokenizerFast

     try:
          if not is_torch_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_mpnet import (
              MPNET_PRETRAINED_MODEL_ARCHIVE_LIST,
              MPNetForMaskedLM,
              MPNetForMultipleChoice,
              MPNetForQuestionAnswering,
              MPNetForSequenceClassification,
              MPNetForTokenClassification,
              MPNetLayer,
              MPNetModel,
              MPNetPreTrainedModel,
          )

     try:
          if not is_tf_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_tf_mpnet import (
              TF_MPNET_PRETRAINED_MODEL_ARCHIVE_LIST,
              TFMPNetEmbeddings,
              TFMPNetForMaskedLM,
              TFMPNetForMultipleChoice,
              TFMPNetForQuestionAnswering,
              TFMPNetForSequenceClassification,
              TFMPNetForTokenClassification,
              TFMPNetMainLayer,
              TFMPNetModel,
              TFMPNetPreTrainedModel,
          )

else:
     import sys

     _UpperCAmelCase				       = _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)

