mirror of
https://github.com/python/cpython.git
synced 2025-08-03 08:34:29 +00:00
Close SF bug 563740. complex() now finds __complex__() in new style classes.
Made conversion failure error messages consistent between types. Added related unittests.
This commit is contained in:
parent
56f46f8d8c
commit
478d47a168
3 changed files with 36 additions and 28 deletions
|
@ -101,6 +101,17 @@ print 'compile'
|
|||
compile('print 1\n', '', 'exec')
|
||||
|
||||
print 'complex'
|
||||
class OS:
|
||||
def __complex__(self): return 1+10j
|
||||
class NS(object):
|
||||
def __complex__(self): return 1+10j
|
||||
if complex(OS()) != 1+10j: raise TestFailed, '__complex__ in old style class'
|
||||
if complex(NS()) != 1+10j: raise TestFailed, '__complex__ in new style class'
|
||||
if complex("1+10j") != 1+10j: raise TestFailed, 'complex("1+10j")'
|
||||
if complex(10) != 10+0j: raise TestFailed, 'complex(10)'
|
||||
if complex(10.0) != 10+0j: raise TestFailed, 'complex(10.0)'
|
||||
if complex(10L) != 10+0j: raise TestFailed, 'complex(10L)'
|
||||
if complex(10+0j) != 10+0j: raise TestFailed, 'complex(10+0j)'
|
||||
if complex(1,10) != 1+10j: raise TestFailed, 'complex(1,10)'
|
||||
if complex(1,10L) != 1+10j: raise TestFailed, 'complex(1,10L)'
|
||||
if complex(1,10.0) != 1+10j: raise TestFailed, 'complex(1,10.0)'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue