@@ -310,15 +310,10 @@ def test_conjugate(self):
310
310
# TODO: RUSTPYTHON
311
311
@unittest .expectedFailure
312
312
def test_constructor (self ):
313
- class OS :
313
+ class NS :
314
314
def __init__ (self , value ): self .value = value
315
315
def __complex__ (self ): return self .value
316
- class NS (object ):
317
- def __init__ (self , value ): self .value = value
318
- def __complex__ (self ): return self .value
319
- self .assertEqual (complex (OS (1 + 10j )), 1 + 10j )
320
316
self .assertEqual (complex (NS (1 + 10j )), 1 + 10j )
321
- self .assertRaises (TypeError , complex , OS (None ))
322
317
self .assertRaises (TypeError , complex , NS (None ))
323
318
self .assertRaises (TypeError , complex , {})
324
319
self .assertRaises (TypeError , complex , NS (1.5 ))
@@ -503,6 +498,18 @@ def __complex__(self):
503
498
self .assertEqual (complex (complex1 (1j )), 2j )
504
499
self .assertRaises (TypeError , complex , complex2 (1j ))
505
500
501
+ def test___complex__ (self ):
502
+ z = 3 + 4j
503
+ self .assertEqual (z .__complex__ (), z )
504
+ self .assertEqual (type (z .__complex__ ()), complex )
505
+
506
+ class complex_subclass (complex ):
507
+ pass
508
+
509
+ z = complex_subclass (3 + 4j )
510
+ self .assertEqual (z .__complex__ (), 3 + 4j )
511
+ self .assertEqual (type (z .__complex__ ()), complex )
512
+
506
513
@support .requires_IEEE_754
507
514
def test_constructor_special_numbers (self ):
508
515
class complex2 (complex ):
0 commit comments