[Python-checkins] bpo-35431: Test math.comb() and math.perm() for OverflowError only on CPython. (GH-14146)

Serhiy Storchaka webhook-mailer at python.org
Mon Jun 17 09:58:43 EDT 2019


https://github.com/python/cpython/commit/1b8a46d59734a77cd1f5ffcf3bdfcaafd58a87e7
commit: 1b8a46d59734a77cd1f5ffcf3bdfcaafd58a87e7
branch: master
author: Serhiy Storchaka <storchaka at gmail.com>
committer: GitHub <noreply at github.com>
date: 2019-06-17T16:58:32+03:00
summary:

bpo-35431: Test math.comb() and math.perm() for OverflowError only on CPython. (GH-14146)

Other implementation can raise MemoryError, but it can takes hours.

files:
M Lib/test/test_math.py

diff --git a/Lib/test/test_math.py b/Lib/test/test_math.py
index f25913941b8a..fa690441be43 100644
--- a/Lib/test/test_math.py
+++ b/Lib/test/test_math.py
@@ -525,7 +525,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)
         with self.assertWarns(DeprecationWarning):
@@ -1922,7 +1922,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)
@@ -1991,7 +1992,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