summaryrefslogtreecommitdiff
path: root/Lib/test/test_complex.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2019-06-02 00:05:48 +0300
committerGitHub <noreply@github.com>2019-06-02 00:05:48 +0300
commitbdbad71b9def0b86433de12cecca022eee91bd9f (patch)
tree147c8a3e08454a95e0e4900388d88f7b65430f63 /Lib/test/test_complex.py
parent1a4d9ffa1aecd7e750195f2be06d3d16c7a3a88f (diff)
downloadcpython-git-bdbad71b9def0b86433de12cecca022eee91bd9f.tar.gz
bpo-20092. Use __index__ in constructors of int, float and complex. (GH-13108)
Diffstat (limited to 'Lib/test/test_complex.py')
-rw-r--r--Lib/test/test_complex.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/Lib/test/test_complex.py b/Lib/test/test_complex.py
index 21c6eaed60..fe1e566562 100644
--- a/Lib/test/test_complex.py
+++ b/Lib/test/test_complex.py
@@ -368,6 +368,24 @@ class ComplexTest(unittest.TestCase):
self.assertAlmostEqual(complex(real=float2(17.), imag=float2(23.)), 17+23j)
self.assertRaises(TypeError, complex, float2(None))
+ class MyIndex:
+ def __init__(self, value):
+ self.value = value
+ def __index__(self):
+ return self.value
+
+ self.assertAlmostEqual(complex(MyIndex(42)), 42.0+0.0j)
+ self.assertAlmostEqual(complex(123, MyIndex(42)), 123.0+42.0j)
+ self.assertRaises(OverflowError, complex, MyIndex(2**2000))
+ self.assertRaises(OverflowError, complex, 123, MyIndex(2**2000))
+
+ class MyInt:
+ def __int__(self):
+ return 42
+
+ self.assertRaises(TypeError, complex, MyInt())
+ self.assertRaises(TypeError, complex, 123, MyInt())
+
class complex0(complex):
"""Test usage of __complex__() when inheriting from 'complex'"""
def __complex__(self):