99
1010# __eq__
1111
12+ assert 3 + 02j == 3 + 2j
1213assert complex (1 , - 1 ) == complex (1 , - 1 )
1314assert complex (1 , 0 ) == 1
1415assert 1 == complex (1 , 0 )
2223assert not 1.0 != complex (1 , 0 )
2324assert bool (complex (1 , 0 ))
2425assert complex (1 , 2 ) != complex (1 , 1 )
25- assert complex (1 , 2 ) != ' foo'
26- assert complex (1 , 2 ).__eq__ (' foo' ) == NotImplemented
27- assert 1j != 10 ** 1000
26+ assert complex (1 , 2 ) != " foo"
27+ assert complex (1 , 2 ).__eq__ (" foo" ) == NotImplemented
28+ assert 1j != 10 ** 1000
2829
2930# __mul__, __rmul__
3031
8182assert hash (complex (1 )) == hash (float (1 )) == hash (int (1 ))
8283assert hash (complex (- 1 )) == hash (float (- 1 )) == hash (int (- 1 ))
8384assert hash (complex (3.14 )) == hash (float (3.14 ))
84- assert hash (complex (- float (' inf' ))) == hash (- float (' inf' ))
85+ assert hash (complex (- float (" inf" ))) == hash (- float (" inf" ))
8586assert hash (1j ) != hash (1 )
8687
8788# TODO: Find a way to test platform dependent values
119120assert 2j - 1j == complex (0 , 1 )
120121
121122# type error addition
122- assert_raises (TypeError , lambda : 1j + ' str' )
123- assert_raises (TypeError , lambda : 1j - ' str' )
124- assert_raises (TypeError , lambda : ' str' + 1j )
125- 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 )
126127
127128# overflow
128- assert_raises (OverflowError , lambda : complex (10 ** 1000 , 0 ))
129- assert_raises (OverflowError , lambda : complex (0 , 10 ** 1000 ))
130- 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 )
131132
132133# str/repr
133- assert ' (1+1j)' == str (1 + 1j )
134- assert ' (1-1j)' == str (1 - 1j )
135- assert ' (1+1j)' == repr (1 + 1j )
136- 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 )
137138
138139# __getnewargs__
139140assert (3 + 5j ).__getnewargs__ () == (3.0 , 5.0 )
140141assert (5j ).__getnewargs__ () == (0.0 , 5.0 )
141142
142143
143- class Complex () :
144+ class Complex :
144145 def __init__ (self , real , imag ):
145146 self .real = real
146147 self .imag = imag
@@ -157,6 +158,7 @@ def __rsub__(self, other):
157158 def __eq__ (self , other ):
158159 return self .real == other .real and self .imag == other .imag
159160
161+
160162assert Complex (4 , 5 ) - 3 == Complex (1 , 5 )
161163assert 7 - Complex (4 , 5 ) == Complex (3 , - 5 )
162164
@@ -166,62 +168,71 @@ def __eq__(self, other):
166168assert_raises (TypeError , lambda : complex ("5+2j" , 1 ))
167169assert_raises (ValueError , lambda : complex ("abc" ))
168170
169- assert complex ("1+10j" ) == 1 + 10j
170- assert complex (10 ) == 10 + 0j
171- assert complex (10.0 ) == 10 + 0j
172- assert complex (10 ) == 10 + 0j
173- assert complex (10 + 0j ) == 10 + 0j
174- assert complex (1 , 10 ) == 1 + 10j
175- assert complex (1 , 10 ) == 1 + 10j
176- assert complex (1 , 10.0 ) == 1 + 10j
177- assert complex (1 , 10 ) == 1 + 10j
178- assert complex (1 , 10 ) == 1 + 10j
179- assert complex (1 , 10.0 ) == 1 + 10j
180- assert complex (1.0 , 10 ) == 1 + 10j
181- assert complex (1.0 , 10 ) == 1 + 10j
182- assert complex (1.0 , 10.0 ) == 1 + 10j
183- assert complex (3.14 + 0j ) == 3.14 + 0j
184- assert complex (3.14 ) == 3.14 + 0j
185- assert complex (314 ) == 314.0 + 0j
186- assert complex (314 ) == 314.0 + 0j
187- assert complex (3.14 + 0j , 0j ) == 3.14 + 0j
188- assert complex (3.14 , 0.0 ) == 3.14 + 0j
189- assert complex (314 , 0 ) == 314.0 + 0j
190- assert complex (314 , 0 ) == 314.0 + 0j
191- assert complex (0j , 3.14j ) == - 3.14 + 0j
192- 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
193195assert complex (0j , 3.14 ) == 3.14j
194196assert complex (0.0 , 3.14 ) == 3.14j
195- assert complex ("1" ) == 1 + 0j
197+ assert complex ("1" ) == 1 + 0j
196198assert complex ("1j" ) == 1j
197199assert complex () == 0
198200assert complex ("-1" ) == - 1
199201assert complex ("+1" ) == + 1
200- assert complex ("(1+2j)" ) == 1 + 2j
201- assert complex ("(1.3+2.2j)" ) == 1.3 + 2.2j
202- assert complex ("3.14+1J" ) == 3.14 + 1j
203- assert complex (" ( +3.14-6J )" ) == 3.14 - 6j
204- assert complex (" ( +3.14-J )" ) == 3.14 - 1j
205- 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
206208assert complex ("J" ) == 1j
207209assert complex ("( j )" ) == 1j
208210assert complex ("+J" ) == 1j
209211assert complex ("( -j)" ) == - 1j
210- assert complex ('1e-500' ) == 0.0 + 0.0j
211- assert complex ('-1e-500j' ) == 0.0 - 0.0j
212- 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
215+
216+
217+ # Invalid syntax:
218+ src = """
219+ b = 03 + 2j
220+ """
221+
222+ with assert_raises (SyntaxError ):
223+ exec (src )
213224
214225
215226# __complex__
216- def test__complex__ ():
217- z = 3 + 4j
218- assert z .__complex__ () == z
219- assert type ( z . __complex__ ()) == complex
220-
221- class complex_subclass (complex ):
222- pass
223- z = complex_subclass ( 3 + 4j )
224- assert z . __complex__ () == 3 + 4j
225- assert type ( z . __complex__ ()) == complex
226-
227- testutils . skip_if_unsupported ( 3 , 11 , test__complex__ )
227+ z = 3 + 4j
228+ assert z . __complex__ () == z
229+ assert type ( z .__complex__ ()) == complex
230+
231+
232+ class complex_subclass (complex ):
233+ pass
234+
235+
236+ z = complex_subclass ( 3 + 4j )
237+ assert z . __complex__ () == 3 + 4j
238+ assert type ( z . __complex__ ()) == complex
0 commit comments