summaryrefslogtreecommitdiff
path: root/Lib/test/test_complex.py
diff options
context:
space:
mode:
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):