




import unittest
from timeit import timeit



def     lowerCAmelCase		(		_lowerCAmelCase				: int    ,				_lowerCAmelCase				: int						):




 """simple docstring"""







 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		(		_lowerCAmelCase				: int    ,				_lowerCAmelCase				: int						):




 """simple docstring"""







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



def     lowerCAmelCase		(		_lowerCAmelCase				: int    ,				_lowerCAmelCase				: int						):




 """simple docstring"""







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



def     lowerCAmelCase		(		):




 """simple docstring"""







 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=_lowerCAmelCase						)    ,				)
 print(
     "least_common_multiple_fast():"    ,				timeit("least_common_multiple_fast(1000, 999)"    ,				setup=_lowerCAmelCase						)    ,				)
class       _UpperCamelCase   (					unittest.TestCase		):
      UpperCAmelCase_          =		(
          (10, 20),
          (13, 15),
          (4, 31),
          (10, 42),
          (43, 34),
          (5, 12),
          (12, 25),
          (10, 25),
          (6, 9),
      )
      UpperCAmelCase_          =		(20, 1_95, 1_24, 2_10, 14_62, 60, 3_00, 50, 18)
      def 						UpperCAmelCase_    (      self :Dict   )  ->      Dict:
       for i, (first_num, second_num) in enumerate(self.test_inputs   ):
        UpperCAmelCase__							=    least_common_multiple_slow(lowerCamelCase			,   lowerCamelCase   )
        UpperCAmelCase__							=    least_common_multiple_fast(lowerCamelCase			,   lowerCamelCase   )
        with self.subTest(i=lowerCamelCase   ):
         self.assertEqual(lowerCamelCase			,   self.expected_results[i]   )
         self.assertEqual(lowerCamelCase			,   self.expected_results[i]   )


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











from math import cos, sin



def     lowerCAmelCase		(		_lowerCAmelCase				: float						):




 """simple docstring"""







 UpperCAmelCase__							=    float(_lowerCAmelCase						)
 return [[scaling_factor * int(x == y						) for x in range(2						)] for y in range(2						)]



def     lowerCAmelCase		(		_lowerCAmelCase				: float						):




 """simple docstring"""







 UpperCAmelCase__			,			UpperCAmelCase__							=    cos(_lowerCAmelCase						), sin(_lowerCAmelCase						)
 return [[c, -s], [s, c]]



def     lowerCAmelCase		(		_lowerCAmelCase				: float						):




 """simple docstring"""







 UpperCAmelCase__			,			UpperCAmelCase__							=    cos(_lowerCAmelCase						), sin(_lowerCAmelCase						)
 UpperCAmelCase__							=    c * s
 return [[c * c, cs], [cs, s * s]]



def     lowerCAmelCase		(		_lowerCAmelCase				: float						):




 """simple docstring"""







 UpperCAmelCase__			,			UpperCAmelCase__							=    cos(_lowerCAmelCase						), sin(_lowerCAmelCase						)
 UpperCAmelCase__							=    c * s
 return [[2 * c - 1, 2 * cs], [2 * cs, 2 * s - 1]]


print(F'''    {scaling(5) = }''')
print(F'''  {rotation(4_5) = }''')
print(F'''{projection(4_5) = }''')


print(F'''{reflection(4_5) = }''')





