mirror of
https://github.com/python/cpython.git
synced 2025-11-10 10:32:04 +00:00
bpo-39479:Add math.lcm() function: Least Common Multiple (#18547)
* Update math.rst * Update math.rst * updated whats new * Update test_math.py * Update mathmodule.c * Update mathmodule.c.h * Update ACKS * 📜🤖 Added by blurb_it. * Update 3.9.rst * Update 2020-02-18-12-37-16.bpo-39479.j3UcCq.rst * Update math.rst * Update 2020-02-18-12-37-16.bpo-39479.j3UcCq.rst * Update test_math.py * Update ACKS * Update mathmodule.c.h * Update mathmodule.c * Update mathmodule.c.h * Update mathmodule.c.h Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
This commit is contained in:
parent
4dee92b0ad
commit
f2ee21d858
7 changed files with 134 additions and 1 deletions
|
|
@ -974,6 +974,41 @@ def __index__(self):
|
|||
with self.assertRaises(TypeError):
|
||||
math.isqrt(value)
|
||||
|
||||
def test_lcm(self):
|
||||
lcm = math.lcm
|
||||
self.assertEqual(lcm(0, 0), 0)
|
||||
self.assertEqual(lcm(1, 0), 0)
|
||||
self.assertEqual(lcm(-1, 0), 0)
|
||||
self.assertEqual(lcm(0, 1), 0)
|
||||
self.assertEqual(lcm(0, -1), 0)
|
||||
self.assertEqual(lcm(7, 1), 7)
|
||||
self.assertEqual(lcm(7, -1), 7)
|
||||
self.assertEqual(lcm(-23, 15), 345)
|
||||
self.assertEqual(lcm(120, 84), 840)
|
||||
self.assertEqual(lcm(84, -120), 840)
|
||||
self.assertEqual(lcm(1216342683557601535506311712,
|
||||
436522681849110124616458784),
|
||||
16592536571065866494401400422922201534178938447014944)
|
||||
x = 43461045657039990237
|
||||
y = 10645022458251153277
|
||||
|
||||
for c in (652560,
|
||||
57655923087165495981):
|
||||
a = x * c
|
||||
b = y * c
|
||||
d = x * y * c
|
||||
self.assertEqual(lcm(a, b), d)
|
||||
self.assertEqual(lcm(b, a), d)
|
||||
self.assertEqual(lcm(-a, b), d)
|
||||
self.assertEqual(lcm(b, -a), d)
|
||||
self.assertEqual(lcm(a, -b), d)
|
||||
self.assertEqual(lcm(-b, a), d)
|
||||
self.assertEqual(lcm(-a, -b), d)
|
||||
self.assertEqual(lcm(-b, -a), d)
|
||||
self.assertEqual(lcm(MyIndexable(120), MyIndexable(84)), 840)
|
||||
self.assertRaises(TypeError, lcm, 120.0, 84)
|
||||
self.assertRaises(TypeError, lcm, 120, 84.0)
|
||||
|
||||
def testLdexp(self):
|
||||
self.assertRaises(TypeError, math.ldexp)
|
||||
self.ftest('ldexp(0,1)', math.ldexp(0,1), 0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue