@@ -974,6 +974,41 @@ def __index__(self):
974
974
with self .assertRaises (TypeError ):
975
975
math .isqrt (value )
976
976
977
+ def test_lcm (self ):
978
+ lcm = math .lcm
979
+ self .assertEqual (lcm (0 , 0 ), 0 )
980
+ self .assertEqual (lcm (1 , 0 ), 0 )
981
+ self .assertEqual (lcm (- 1 , 0 ), 0 )
982
+ self .assertEqual (lcm (0 , 1 ), 0 )
983
+ self .assertEqual (lcm (0 , - 1 ), 0 )
984
+ self .assertEqual (lcm (7 , 1 ), 7 )
985
+ self .assertEqual (lcm (7 , - 1 ), 7 )
986
+ self .assertEqual (lcm (- 23 , 15 ), 345 )
987
+ self .assertEqual (lcm (120 , 84 ), 840 )
988
+ self .assertEqual (lcm (84 , - 120 ), 840 )
989
+ self .assertEqual (lcm (1216342683557601535506311712 ,
990
+ 436522681849110124616458784 ),
991
+ 16592536571065866494401400422922201534178938447014944 )
992
+ x = 43461045657039990237
993
+ y = 10645022458251153277
994
+
995
+ for c in (652560 ,
996
+ 57655923087165495981 ):
997
+ a = x * c
998
+ b = y * c
999
+ d = x * y * c
1000
+ self .assertEqual (lcm (a , b ), d )
1001
+ self .assertEqual (lcm (b , a ), d )
1002
+ self .assertEqual (lcm (- a , b ), d )
1003
+ self .assertEqual (lcm (b , - a ), d )
1004
+ self .assertEqual (lcm (a , - b ), d )
1005
+ self .assertEqual (lcm (- b , a ), d )
1006
+ self .assertEqual (lcm (- a , - b ), d )
1007
+ self .assertEqual (lcm (- b , - a ), d )
1008
+ self .assertEqual (lcm (MyIndexable (120 ), MyIndexable (84 )), 840 )
1009
+ self .assertRaises (TypeError , lcm , 120.0 , 84 )
1010
+ self .assertRaises (TypeError , lcm , 120 , 84.0 )
1011
+
977
1012
def testLdexp (self ):
978
1013
self .assertRaises (TypeError , math .ldexp )
979
1014
self .ftest ('ldexp(0,1)' , math .ldexp (0 ,1 ), 0 )
0 commit comments