99
1010# __eq__
1111
12- assert 3 + 02j == 3 + 2j
12+ assert 3 + 02j == 3 + 2j
1313assert complex (1 , - 1 ) == complex (1 , - 1 )
1414assert complex (1 , 0 ) == 1
1515assert 1 == complex (1 , 0 )
2323assert not 1.0 != complex (1 , 0 )
2424assert bool (complex (1 , 0 ))
2525assert complex (1 , 2 ) != complex (1 , 1 )
26- assert complex (1 , 2 ) != ' foo'
27- assert complex (1 , 2 ).__eq__ (' foo' ) == NotImplemented
28- assert 1j != 10 ** 1000
26+ assert complex (1 , 2 ) != " foo"
27+ assert complex (1 , 2 ).__eq__ (" foo" ) == NotImplemented
28+ assert 1j != 10 ** 1000
2929
3030# __mul__, __rmul__
3131
8282assert hash (complex (1 )) == hash (float (1 )) == hash (int (1 ))
8383assert hash (complex (- 1 )) == hash (float (- 1 )) == hash (int (- 1 ))
8484assert hash (complex (3.14 )) == hash (float (3.14 ))
85- assert hash (complex (- float (' inf' ))) == hash (- float (' inf' ))
85+ assert hash (complex (- float (" inf" ))) == hash (- float (" inf" ))
8686assert hash (1j ) != hash (1 )
8787
8888# TODO: Find a way to test platform dependent values
120120assert 2j - 1j == complex (0 , 1 )
121121
122122# type error addition
123- assert_raises (TypeError , lambda : 1j + ' str' )
124- assert_raises (TypeError , lambda : 1j - ' str' )
125- assert_raises (TypeError , lambda : ' str' + 1j )
126- assert_raises (TypeError , lambda : ' str' - 1j )
123+ assert_raises (TypeError , lambda : 1j + " str" )
124+ assert_raises (TypeError , lambda : 1j - " str" )
125+ assert_raises (TypeError , lambda : " str" + 1j )
126+ assert_raises (TypeError , lambda : " str" - 1j )
127127
128128# overflow
129- assert_raises (OverflowError , lambda : complex (10 ** 1000 , 0 ))
130- assert_raises (OverflowError , lambda : complex (0 , 10 ** 1000 ))
131- assert_raises (OverflowError , lambda : 0j + 10 ** 1000 )
129+ assert_raises (OverflowError , lambda : complex (10 ** 1000 , 0 ))
130+ assert_raises (OverflowError , lambda : complex (0 , 10 ** 1000 ))
131+ assert_raises (OverflowError , lambda : 0j + 10 ** 1000 )
132132
133133# str/repr
134- assert ' (1+1j)' == str (1 + 1j )
135- assert ' (1-1j)' == str (1 - 1j )
136- assert ' (1+1j)' == repr (1 + 1j )
137- assert ' (1-1j)' == repr (1 - 1j )
134+ assert " (1+1j)" == str (1 + 1j )
135+ assert " (1-1j)" == str (1 - 1j )
136+ assert " (1+1j)" == repr (1 + 1j )
137+ assert " (1-1j)" == repr (1 - 1j )
138138
139139# __getnewargs__
140140assert (3 + 5j ).__getnewargs__ () == (3.0 , 5.0 )
141141assert (5j ).__getnewargs__ () == (0.0 , 5.0 )
142142
143143
144- class Complex () :
144+ class Complex :
145145 def __init__ (self , real , imag ):
146146 self .real = real
147147 self .imag = imag
@@ -158,6 +158,7 @@ def __rsub__(self, other):
158158 def __eq__ (self , other ):
159159 return self .real == other .real and self .imag == other .imag
160160
161+
161162assert Complex (4 , 5 ) - 3 == Complex (1 , 5 )
162163assert 7 - Complex (4 , 5 ) == Complex (3 , - 5 )
163164
@@ -167,50 +168,50 @@ def __eq__(self, other):
167168assert_raises (TypeError , lambda : complex ("5+2j" , 1 ))
168169assert_raises (ValueError , lambda : complex ("abc" ))
169170
170- assert complex ("1+10j" ) == 1 + 10j
171- assert complex (10 ) == 10 + 0j
172- assert complex (10.0 ) == 10 + 0j
173- assert complex (10 ) == 10 + 0j
174- assert complex (10 + 0j ) == 10 + 0j
175- assert complex (1 , 10 ) == 1 + 10j
176- assert complex (1 , 10 ) == 1 + 10j
177- assert complex (1 , 10.0 ) == 1 + 10j
178- assert complex (1 , 10 ) == 1 + 10j
179- assert complex (1 , 10 ) == 1 + 10j
180- assert complex (1 , 10.0 ) == 1 + 10j
181- assert complex (1.0 , 10 ) == 1 + 10j
182- assert complex (1.0 , 10 ) == 1 + 10j
183- assert complex (1.0 , 10.0 ) == 1 + 10j
184- assert complex (3.14 + 0j ) == 3.14 + 0j
185- assert complex (3.14 ) == 3.14 + 0j
186- assert complex (314 ) == 314.0 + 0j
187- assert complex (314 ) == 314.0 + 0j
188- assert complex (3.14 + 0j , 0j ) == 3.14 + 0j
189- assert complex (3.14 , 0.0 ) == 3.14 + 0j
190- assert complex (314 , 0 ) == 314.0 + 0j
191- assert complex (314 , 0 ) == 314.0 + 0j
192- assert complex (0j , 3.14j ) == - 3.14 + 0j
193- assert complex (0.0 , 3.14j ) == - 3.14 + 0j
171+ assert complex ("1+10j" ) == 1 + 10j
172+ assert complex (10 ) == 10 + 0j
173+ assert complex (10.0 ) == 10 + 0j
174+ assert complex (10 ) == 10 + 0j
175+ assert complex (10 + 0j ) == 10 + 0j
176+ assert complex (1 , 10 ) == 1 + 10j
177+ assert complex (1 , 10 ) == 1 + 10j
178+ assert complex (1 , 10.0 ) == 1 + 10j
179+ assert complex (1 , 10 ) == 1 + 10j
180+ assert complex (1 , 10 ) == 1 + 10j
181+ assert complex (1 , 10.0 ) == 1 + 10j
182+ assert complex (1.0 , 10 ) == 1 + 10j
183+ assert complex (1.0 , 10 ) == 1 + 10j
184+ assert complex (1.0 , 10.0 ) == 1 + 10j
185+ assert complex (3.14 + 0j ) == 3.14 + 0j
186+ assert complex (3.14 ) == 3.14 + 0j
187+ assert complex (314 ) == 314.0 + 0j
188+ assert complex (314 ) == 314.0 + 0j
189+ assert complex (3.14 + 0j , 0j ) == 3.14 + 0j
190+ assert complex (3.14 , 0.0 ) == 3.14 + 0j
191+ assert complex (314 , 0 ) == 314.0 + 0j
192+ assert complex (314 , 0 ) == 314.0 + 0j
193+ assert complex (0j , 3.14j ) == - 3.14 + 0j
194+ assert complex (0.0 , 3.14j ) == - 3.14 + 0j
194195assert complex (0j , 3.14 ) == 3.14j
195196assert complex (0.0 , 3.14 ) == 3.14j
196- assert complex ("1" ) == 1 + 0j
197+ assert complex ("1" ) == 1 + 0j
197198assert complex ("1j" ) == 1j
198199assert complex () == 0
199200assert complex ("-1" ) == - 1
200201assert complex ("+1" ) == + 1
201- assert complex ("(1+2j)" ) == 1 + 2j
202- assert complex ("(1.3+2.2j)" ) == 1.3 + 2.2j
203- assert complex ("3.14+1J" ) == 3.14 + 1j
204- assert complex (" ( +3.14-6J )" ) == 3.14 - 6j
205- assert complex (" ( +3.14-J )" ) == 3.14 - 1j
206- assert complex (" ( +3.14+j )" ) == 3.14 + 1j
202+ assert complex ("(1+2j)" ) == 1 + 2j
203+ assert complex ("(1.3+2.2j)" ) == 1.3 + 2.2j
204+ assert complex ("3.14+1J" ) == 3.14 + 1j
205+ assert complex (" ( +3.14-6J )" ) == 3.14 - 6j
206+ assert complex (" ( +3.14-J )" ) == 3.14 - 1j
207+ assert complex (" ( +3.14+j )" ) == 3.14 + 1j
207208assert complex ("J" ) == 1j
208209assert complex ("( j )" ) == 1j
209210assert complex ("+J" ) == 1j
210211assert complex ("( -j)" ) == - 1j
211- assert complex (' 1e-500' ) == 0.0 + 0.0j
212- assert complex (' -1e-500j' ) == 0.0 - 0.0j
213- assert complex (' -1e-500+1e-500j' ) == - 0.0 + 0.0j
212+ assert complex (" 1e-500" ) == 0.0 + 0.0j
213+ assert complex (" -1e-500j" ) == 0.0 - 0.0j
214+ assert complex (" -1e-500+1e-500j" ) == - 0.0 + 0.0j
214215
215216
216217# Invalid syntax:
@@ -227,8 +228,11 @@ def __eq__(self, other):
227228assert z .__complex__ () == z
228229assert type (z .__complex__ ()) == complex
229230
231+
230232class complex_subclass (complex ):
231233 pass
234+
235+
232236z = complex_subclass (3 + 4j )
233237assert z .__complex__ () == 3 + 4j
234238assert type (z .__complex__ ()) == complex
0 commit comments