[Python-checkins] [3.8] bpo-35431: Test math.comb() and math.perm() for OverflowError only on CPython. (GH-14146) (#14226)
Serhiy Storchaka
webhook-mailer at python.org
Sun Jun 23 10:50:08 EDT 2019
https://github.com/python/cpython/commit/914d6b79735e5eabaf4e4d77e3f2ad4eae0beb9a
commit: 914d6b79735e5eabaf4e4d77e3f2ad4eae0beb9a
branch: 3.8
author: Serhiy Storchaka <storchaka at gmail.com>
committer: GitHub <noreply at github.com>
date: 2019-06-23T17:50:04+03:00
summary:
[3.8] bpo-35431: Test math.comb() and math.perm() for OverflowError only on CPython. (GH-14146) (#14226)
Other implementation can raise MemoryError, but it can takes hours.
(cherry picked from commit 1b8a46d59734a77cd1f5ffcf3bdfcaafd58a87e7)
files:
M Lib/test/test_math.py
diff --git a/Lib/test/test_math.py b/Lib/test/test_math.py
index adefa07a4041..b7dac5eeef63 100644
--- a/Lib/test/test_math.py
+++ b/Lib/test/test_math.py
@@ -521,7 +521,7 @@ def testFactorialNonIntegers(self):
# Other implementations may place different upper bounds.
@support.cpython_only
def testFactorialHugeInputs(self):
- # Currently raises ValueError for inputs that are too large
+ # Currently raises OverflowError for inputs that are too large
# to fit into a C long.
self.assertRaises(OverflowError, math.factorial, 10**100)
self.assertRaises(OverflowError, math.factorial, 1e100)
@@ -1917,7 +1917,8 @@ def testPerm(self):
self.assertEqual(perm(n, 0), 1)
self.assertEqual(perm(n, 1), n)
self.assertEqual(perm(n, 2), n * (n-1))
- self.assertRaises((OverflowError, MemoryError), perm, n, n)
+ if support.check_impl_detail(cpython=True):
+ self.assertRaises(OverflowError, perm, n, n)
for n, k in (True, True), (True, False), (False, False):
self.assertEqual(perm(n, k), 1)
@@ -1986,7 +1987,8 @@ def testComb(self):
self.assertEqual(comb(n, n), 1)
self.assertEqual(comb(n, n-1), n)
self.assertEqual(comb(n, n-2), n * (n-1) // 2)
- self.assertRaises((OverflowError, MemoryError), comb, n, n//2)
+ if support.check_impl_detail(cpython=True):
+ self.assertRaises(OverflowError, comb, n, n//2)
for n, k in (True, True), (True, False), (False, False):
self.assertEqual(comb(n, k), 1)
More information about the Python-checkins
mailing list