3 class Complex_Test2 < Test::Unit::TestCase
6 return unless defined?(Rational)
8 assert_equal(Complex(1, 0), +Complex(1, 0))
9 assert_equal(Complex(-1, 0), -Complex(1, 0))
10 assert_equal(Complex(2, 0),
11 Complex(1, 0) + Complex(1, 0))
12 assert_equal(Complex(0, 0),
13 Complex(1, 0) - Complex(1, 0))
14 assert_equal(Complex(1, 0),
15 Complex(1, 0) * Complex(1, 0))
16 assert_equal(Complex(1, 0),
17 Complex(1, 0) / Complex(1, 0))
18 assert_equal(Complex(1073741790, 0),
19 Complex(1, 0) + Complex(1073741789, 0))
20 assert_equal(Complex(-1073741788, 0),
21 Complex(1, 0) - Complex(1073741789, 0))
22 assert_equal(Complex(1073741789, 0),
23 Complex(1, 0) * Complex(1073741789, 0))
24 assert_equal(Complex(Rational(1, 1073741789), 0),
25 Complex(1, 0) / Complex(1073741789, 0))
26 assert_equal(Complex(1073741828, 0),
27 Complex(1, 0) + Complex(1073741827, 0))
28 assert_equal(Complex(-1073741826, 0),
29 Complex(1, 0) - Complex(1073741827, 0))
30 assert_equal(Complex(1073741827, 0),
31 Complex(1, 0) * Complex(1073741827, 0))
32 assert_equal(Complex(Rational(1, 1073741827), 0),
33 Complex(1, 0) / Complex(1073741827, 0))
34 assert_equal(Complex(1073741790, 1073741789),
35 Complex(1, 0) + Complex(1073741789, 1073741789))
36 assert_equal(Complex(-1073741788, -1073741789),
37 Complex(1, 0) - Complex(1073741789, 1073741789))
38 assert_equal(Complex(1073741789, 1073741789),
39 Complex(1, 0) * Complex(1073741789, 1073741789))
40 assert_equal(Complex(Rational(1, 2147483578), Rational(-1, 2147483578)),
41 Complex(1, 0) / Complex(1073741789, 1073741789))
42 assert_equal(Complex(1073741790, 1073741827),
43 Complex(1, 0) + Complex(1073741789, 1073741827))
44 assert_equal(Complex(-1073741788, -1073741827),
45 Complex(1, 0) - Complex(1073741789, 1073741827))
46 assert_equal(Complex(1073741789, 1073741827),
47 Complex(1, 0) * Complex(1073741789, 1073741827))
48 assert_equal(Complex(Rational(1073741789, 2305842940494218450), Rational(-1073741827, 2305842940494218450)),
49 Complex(1, 0) / Complex(1073741789, 1073741827))
50 assert_equal(Complex(1073741828, 1073741827),
51 Complex(1, 0) + Complex(1073741827, 1073741827))
52 assert_equal(Complex(-1073741826, -1073741827),
53 Complex(1, 0) - Complex(1073741827, 1073741827))
54 assert_equal(Complex(1073741827, 1073741827),
55 Complex(1, 0) * Complex(1073741827, 1073741827))
56 assert_equal(Complex(Rational(1, 2147483654), Rational(-1, 2147483654)),
57 Complex(1, 0) / Complex(1073741827, 1073741827))
58 assert_equal(Complex(Rational(2147483616, 1073741827), Rational(1073741789, 1073741827)),
59 Complex(1, 0) + Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
60 assert_equal(Complex(Rational(38, 1073741827), Rational(-1073741789, 1073741827)),
61 Complex(1, 0) - Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
62 assert_equal(Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)),
63 Complex(1, 0) * Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
64 assert_equal(Complex(Rational(1073741827, 2147483578), Rational(-1073741827, 2147483578)),
65 Complex(1, 0) / Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
66 assert_equal(Complex(Rational(2147483616, 1073741789), Rational(1073741827, 1073741789)),
67 Complex(1, 0) + Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
68 assert_equal(Complex(Rational(-38, 1073741789), Rational(-1073741827, 1073741789)),
69 Complex(1, 0) - Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
70 assert_equal(Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)),
71 Complex(1, 0) * Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
72 assert_equal(Complex(Rational(1073741789, 2147483654), Rational(-1073741789, 2147483654)),
73 Complex(1, 0) / Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
74 assert_equal(Complex(Rational(2147483616, 1073741827), Rational(1073741827, 1073741789)),
75 Complex(1, 0) + Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
76 assert_equal(Complex(Rational(38, 1073741827), Rational(-1073741827, 1073741789)),
77 Complex(1, 0) - Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
78 assert_equal(Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)),
79 Complex(1, 0) * Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
80 assert_equal(Complex(Rational(1329227869515035739611240300898290063, 2658455833113515253509575011810600482), Rational(-1329227963598474519442525600436190287, 2658455833113515253509575011810600482)),
81 Complex(1, 0) / Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
82 assert_equal(Complex(1073741789, 0), +Complex(1073741789, 0))
83 assert_equal(Complex(-1073741789, 0), -Complex(1073741789, 0))
84 assert_equal(Complex(1073741790, 0),
85 Complex(1073741789, 0) + Complex(1, 0))
86 assert_equal(Complex(1073741788, 0),
87 Complex(1073741789, 0) - Complex(1, 0))
88 assert_equal(Complex(1073741789, 0),
89 Complex(1073741789, 0) * Complex(1, 0))
90 assert_equal(Complex(1073741789, 0),
91 Complex(1073741789, 0) / Complex(1, 0))
92 assert_equal(Complex(2147483578, 0),
93 Complex(1073741789, 0) + Complex(1073741789, 0))
94 assert_equal(Complex(0, 0),
95 Complex(1073741789, 0) - Complex(1073741789, 0))
96 assert_equal(Complex(1152921429444920521, 0),
97 Complex(1073741789, 0) * Complex(1073741789, 0))
98 assert_equal(Complex(1, 0),
99 Complex(1073741789, 0) / Complex(1073741789, 0))
100 assert_equal(Complex(2147483616, 0),
101 Complex(1073741789, 0) + Complex(1073741827, 0))
102 assert_equal(Complex(-38, 0),
103 Complex(1073741789, 0) - Complex(1073741827, 0))
104 assert_equal(Complex(1152921470247108503, 0),
105 Complex(1073741789, 0) * Complex(1073741827, 0))
106 assert_equal(Complex(Rational(1073741789, 1073741827), 0),
107 Complex(1073741789, 0) / Complex(1073741827, 0))
108 assert_equal(Complex(2147483578, 1073741789),
109 Complex(1073741789, 0) + Complex(1073741789, 1073741789))
110 assert_equal(Complex(0, -1073741789),
111 Complex(1073741789, 0) - Complex(1073741789, 1073741789))
112 assert_equal(Complex(1152921429444920521, 1152921429444920521),
113 Complex(1073741789, 0) * Complex(1073741789, 1073741789))
114 assert_equal(Complex(Rational(1, 2), Rational(-1, 2)),
115 Complex(1073741789, 0) / Complex(1073741789, 1073741789))
116 assert_equal(Complex(2147483578, 1073741827),
117 Complex(1073741789, 0) + Complex(1073741789, 1073741827))
118 assert_equal(Complex(0, -1073741827),
119 Complex(1073741789, 0) - Complex(1073741789, 1073741827))
120 assert_equal(Complex(1152921429444920521, 1152921470247108503),
121 Complex(1073741789, 0) * Complex(1073741789, 1073741827))
122 assert_equal(Complex(Rational(1152921429444920521, 2305842940494218450), Rational(-1152921470247108503, 2305842940494218450)),
123 Complex(1073741789, 0) / Complex(1073741789, 1073741827))
124 assert_equal(Complex(2147483616, 1073741827),
125 Complex(1073741789, 0) + Complex(1073741827, 1073741827))
126 assert_equal(Complex(-38, -1073741827),
127 Complex(1073741789, 0) - Complex(1073741827, 1073741827))
128 assert_equal(Complex(1152921470247108503, 1152921470247108503),
129 Complex(1073741789, 0) * Complex(1073741827, 1073741827))
130 assert_equal(Complex(Rational(1073741789, 2147483654), Rational(-1073741789, 2147483654)),
131 Complex(1073741789, 0) / Complex(1073741827, 1073741827))
132 assert_equal(Complex(Rational(1152921471320850292, 1073741827), Rational(1073741789, 1073741827)),
133 Complex(1073741789, 0) + Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
134 assert_equal(Complex(Rational(1152921469173366714, 1073741827), Rational(-1073741789, 1073741827)),
135 Complex(1073741789, 0) - Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
136 assert_equal(Complex(Rational(1152921429444920521, 1073741827), Rational(1152921429444920521, 1073741827)),
137 Complex(1073741789, 0) * Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
138 assert_equal(Complex(Rational(1073741827, 2), Rational(-1073741827, 2)),
139 Complex(1073741789, 0) / Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
140 assert_equal(Complex(Rational(1152921430518662348, 1073741789), Rational(1073741827, 1073741789)),
141 Complex(1073741789, 0) + Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
142 assert_equal(Complex(Rational(1152921428371178694, 1073741789), Rational(-1073741827, 1073741789)),
143 Complex(1073741789, 0) - Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
144 assert_equal(Complex(1073741827, 1073741827),
145 Complex(1073741789, 0) * Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
146 assert_equal(Complex(Rational(1152921429444920521, 2147483654), Rational(-1152921429444920521, 2147483654)),
147 Complex(1073741789, 0) / Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
148 assert_equal(Complex(Rational(1152921471320850292, 1073741827), Rational(1073741827, 1073741789)),
149 Complex(1073741789, 0) + Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
150 assert_equal(Complex(Rational(1152921469173366714, 1073741827), Rational(-1073741827, 1073741789)),
151 Complex(1073741789, 0) - Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
152 assert_equal(Complex(Rational(1152921429444920521, 1073741827), 1073741827),
153 Complex(1073741789, 0) * Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
154 assert_equal(Complex(Rational(1427247510601733037449111325195428279286542707, 2658455833113515253509575011810600482), Rational(-1427247611623052908177132720890654139107803443, 2658455833113515253509575011810600482)),
155 Complex(1073741789, 0) / Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
156 assert_equal(Complex(1073741827, 0), +Complex(1073741827, 0))
157 assert_equal(Complex(-1073741827, 0), -Complex(1073741827, 0))
158 assert_equal(Complex(1073741828, 0),
159 Complex(1073741827, 0) + Complex(1, 0))
160 assert_equal(Complex(1073741826, 0),
161 Complex(1073741827, 0) - Complex(1, 0))
162 assert_equal(Complex(1073741827, 0),
163 Complex(1073741827, 0) * Complex(1, 0))
164 assert_equal(Complex(1073741827, 0),
165 Complex(1073741827, 0) / Complex(1, 0))
166 assert_equal(Complex(2147483616, 0),
167 Complex(1073741827, 0) + Complex(1073741789, 0))
168 assert_equal(Complex(38, 0),
169 Complex(1073741827, 0) - Complex(1073741789, 0))
170 assert_equal(Complex(1152921470247108503, 0),
171 Complex(1073741827, 0) * Complex(1073741789, 0))
172 assert_equal(Complex(Rational(1073741827, 1073741789), 0),
173 Complex(1073741827, 0) / Complex(1073741789, 0))
174 assert_equal(Complex(2147483654, 0),
175 Complex(1073741827, 0) + Complex(1073741827, 0))
176 assert_equal(Complex(0, 0),
177 Complex(1073741827, 0) - Complex(1073741827, 0))
178 assert_equal(Complex(1152921511049297929, 0),
179 Complex(1073741827, 0) * Complex(1073741827, 0))
180 assert_equal(Complex(1, 0),
181 Complex(1073741827, 0) / Complex(1073741827, 0))
182 assert_equal(Complex(2147483616, 1073741789),
183 Complex(1073741827, 0) + Complex(1073741789, 1073741789))
184 assert_equal(Complex(38, -1073741789),
185 Complex(1073741827, 0) - Complex(1073741789, 1073741789))
186 assert_equal(Complex(1152921470247108503, 1152921470247108503),
187 Complex(1073741827, 0) * Complex(1073741789, 1073741789))
188 assert_equal(Complex(Rational(1073741827, 2147483578), Rational(-1073741827, 2147483578)),
189 Complex(1073741827, 0) / Complex(1073741789, 1073741789))
190 assert_equal(Complex(2147483616, 1073741827),
191 Complex(1073741827, 0) + Complex(1073741789, 1073741827))
192 assert_equal(Complex(38, -1073741827),
193 Complex(1073741827, 0) - Complex(1073741789, 1073741827))
194 assert_equal(Complex(1152921470247108503, 1152921511049297929),
195 Complex(1073741827, 0) * Complex(1073741789, 1073741827))
196 assert_equal(Complex(Rational(1152921470247108503, 2305842940494218450), Rational(-1152921511049297929, 2305842940494218450)),
197 Complex(1073741827, 0) / Complex(1073741789, 1073741827))
198 assert_equal(Complex(2147483654, 1073741827),
199 Complex(1073741827, 0) + Complex(1073741827, 1073741827))
200 assert_equal(Complex(0, -1073741827),
201 Complex(1073741827, 0) - Complex(1073741827, 1073741827))
202 assert_equal(Complex(1152921511049297929, 1152921511049297929),
203 Complex(1073741827, 0) * Complex(1073741827, 1073741827))
204 assert_equal(Complex(Rational(1, 2), Rational(-1, 2)),
205 Complex(1073741827, 0) / Complex(1073741827, 1073741827))
206 assert_equal(Complex(Rational(1152921512123039718, 1073741827), Rational(1073741789, 1073741827)),
207 Complex(1073741827, 0) + Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
208 assert_equal(Complex(Rational(1152921509975556140, 1073741827), Rational(-1073741789, 1073741827)),
209 Complex(1073741827, 0) - Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
210 assert_equal(Complex(1073741789, 1073741789),
211 Complex(1073741827, 0) * Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
212 assert_equal(Complex(Rational(1152921511049297929, 2147483578), Rational(-1152921511049297929, 2147483578)),
213 Complex(1073741827, 0) / Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
214 assert_equal(Complex(Rational(1152921471320850330, 1073741789), Rational(1073741827, 1073741789)),
215 Complex(1073741827, 0) + Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
216 assert_equal(Complex(Rational(1152921469173366676, 1073741789), Rational(-1073741827, 1073741789)),
217 Complex(1073741827, 0) - Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
218 assert_equal(Complex(Rational(1152921511049297929, 1073741789), Rational(1152921511049297929, 1073741789)),
219 Complex(1073741827, 0) * Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
220 assert_equal(Complex(Rational(1073741789, 2), Rational(-1073741789, 2)),
221 Complex(1073741827, 0) / Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
222 assert_equal(Complex(Rational(1152921512123039718, 1073741827), Rational(1073741827, 1073741789)),
223 Complex(1073741827, 0) + Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
224 assert_equal(Complex(Rational(1152921509975556140, 1073741827), Rational(-1073741827, 1073741789)),
225 Complex(1073741827, 0) - Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
226 assert_equal(Complex(1073741789, Rational(1152921511049297929, 1073741789)),
227 Complex(1073741827, 0) * Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
228 assert_equal(Complex(Rational(1427247561112392079020469430422559713421565101, 2658455833113515253509575011810600482), Rational(-1427247662133715524919164459706626955683034349, 2658455833113515253509575011810600482)),
229 Complex(1073741827, 0) / Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
230 assert_equal(Complex(1073741789, 1073741789), +Complex(1073741789, 1073741789))
231 assert_equal(Complex(-1073741789, -1073741789), -Complex(1073741789, 1073741789))
232 assert_equal(Complex(1073741790, 1073741789),
233 Complex(1073741789, 1073741789) + Complex(1, 0))
234 assert_equal(Complex(1073741788, 1073741789),
235 Complex(1073741789, 1073741789) - Complex(1, 0))
236 assert_equal(Complex(1073741789, 1073741789),
237 Complex(1073741789, 1073741789) * Complex(1, 0))
238 assert_equal(Complex(1073741789, 1073741789),
239 Complex(1073741789, 1073741789) / Complex(1, 0))
240 assert_equal(Complex(2147483578, 1073741789),
241 Complex(1073741789, 1073741789) + Complex(1073741789, 0))
242 assert_equal(Complex(0, 1073741789),
243 Complex(1073741789, 1073741789) - Complex(1073741789, 0))
244 assert_equal(Complex(1152921429444920521, 1152921429444920521),
245 Complex(1073741789, 1073741789) * Complex(1073741789, 0))
246 assert_equal(Complex(1, 1),
247 Complex(1073741789, 1073741789) / Complex(1073741789, 0))
248 assert_equal(Complex(2147483616, 1073741789),
249 Complex(1073741789, 1073741789) + Complex(1073741827, 0))
250 assert_equal(Complex(-38, 1073741789),
251 Complex(1073741789, 1073741789) - Complex(1073741827, 0))
252 assert_equal(Complex(1152921470247108503, 1152921470247108503),
253 Complex(1073741789, 1073741789) * Complex(1073741827, 0))
254 assert_equal(Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)),
255 Complex(1073741789, 1073741789) / Complex(1073741827, 0))
256 assert_equal(Complex(2147483578, 2147483578),
257 Complex(1073741789, 1073741789) + Complex(1073741789, 1073741789))
258 assert_equal(Complex(0, 0),
259 Complex(1073741789, 1073741789) - Complex(1073741789, 1073741789))
260 assert_equal(Complex(0, 2305842858889841042),
261 Complex(1073741789, 1073741789) * Complex(1073741789, 1073741789))
262 assert_equal(Complex(1, 0),
263 Complex(1073741789, 1073741789) / Complex(1073741789, 1073741789))
264 assert_equal(Complex(2147483578, 2147483616),
265 Complex(1073741789, 1073741789) + Complex(1073741789, 1073741827))
266 assert_equal(Complex(0, -38),
267 Complex(1073741789, 1073741789) - Complex(1073741789, 1073741827))
268 assert_equal(Complex(-40802187982, 2305842899692029024),
269 Complex(1073741789, 1073741789) * Complex(1073741789, 1073741827))
270 assert_equal(Complex(Rational(1152921449846014512, 1152921470247109225), Rational(-20401093991, 1152921470247109225)),
271 Complex(1073741789, 1073741789) / Complex(1073741789, 1073741827))
272 assert_equal(Complex(2147483616, 2147483616),
273 Complex(1073741789, 1073741789) + Complex(1073741827, 1073741827))
274 assert_equal(Complex(-38, -38),
275 Complex(1073741789, 1073741789) - Complex(1073741827, 1073741827))
276 assert_equal(Complex(0, 2305842940494217006),
277 Complex(1073741789, 1073741789) * Complex(1073741827, 1073741827))
278 assert_equal(Complex(Rational(1073741789, 1073741827), 0),
279 Complex(1073741789, 1073741789) / Complex(1073741827, 1073741827))
280 assert_equal(Complex(Rational(1152921471320850292, 1073741827), Rational(1152921471320850292, 1073741827)),
281 Complex(1073741789, 1073741789) + Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
282 assert_equal(Complex(Rational(1152921469173366714, 1073741827), Rational(1152921469173366714, 1073741827)),
283 Complex(1073741789, 1073741789) - Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
284 assert_equal(Complex(0, Rational(2305842858889841042, 1073741827)),
285 Complex(1073741789, 1073741789) * Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
286 assert_equal(Complex(1073741827, 0),
287 Complex(1073741789, 1073741789) / Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
288 assert_equal(Complex(Rational(1152921430518662348, 1073741789), Rational(1152921430518662348, 1073741789)),
289 Complex(1073741789, 1073741789) + Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
290 assert_equal(Complex(Rational(1152921428371178694, 1073741789), Rational(1152921428371178694, 1073741789)),
291 Complex(1073741789, 1073741789) - Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
292 assert_equal(Complex(0, 2147483654),
293 Complex(1073741789, 1073741789) * Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
294 assert_equal(Complex(Rational(1152921429444920521, 1073741827), 0),
295 Complex(1073741789, 1073741789) / Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
296 assert_equal(Complex(Rational(1152921471320850292, 1073741827), Rational(1152921430518662348, 1073741789)),
297 Complex(1073741789, 1073741789) + Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
298 assert_equal(Complex(Rational(1152921469173366714, 1073741827), Rational(1152921428371178694, 1073741789)),
299 Complex(1073741789, 1073741789) - Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
300 assert_equal(Complex(Rational(-81604377408, 1073741827), Rational(2305842940494218450, 1073741827)),
301 Complex(1073741789, 1073741789) * Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
302 assert_equal(Complex(Rational(1427247561112392972813122023043041209197173075, 1329227916556757626754787505905300241), Rational(-50510659935364010697847612929910630368, 1329227916556757626754787505905300241)),
303 Complex(1073741789, 1073741789) / Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
304 assert_equal(Complex(1073741789, 1073741827), +Complex(1073741789, 1073741827))
305 assert_equal(Complex(-1073741789, -1073741827), -Complex(1073741789, 1073741827))
306 assert_equal(Complex(1073741790, 1073741827),
307 Complex(1073741789, 1073741827) + Complex(1, 0))
308 assert_equal(Complex(1073741788, 1073741827),
309 Complex(1073741789, 1073741827) - Complex(1, 0))
310 assert_equal(Complex(1073741789, 1073741827),
311 Complex(1073741789, 1073741827) * Complex(1, 0))
312 assert_equal(Complex(1073741789, 1073741827),
313 Complex(1073741789, 1073741827) / Complex(1, 0))
314 assert_equal(Complex(2147483578, 1073741827),
315 Complex(1073741789, 1073741827) + Complex(1073741789, 0))
316 assert_equal(Complex(0, 1073741827),
317 Complex(1073741789, 1073741827) - Complex(1073741789, 0))
318 assert_equal(Complex(1152921429444920521, 1152921470247108503),
319 Complex(1073741789, 1073741827) * Complex(1073741789, 0))
320 assert_equal(Complex(1, Rational(1073741827, 1073741789)),
321 Complex(1073741789, 1073741827) / Complex(1073741789, 0))
322 assert_equal(Complex(2147483616, 1073741827),
323 Complex(1073741789, 1073741827) + Complex(1073741827, 0))
324 assert_equal(Complex(-38, 1073741827),
325 Complex(1073741789, 1073741827) - Complex(1073741827, 0))
326 assert_equal(Complex(1152921470247108503, 1152921511049297929),
327 Complex(1073741789, 1073741827) * Complex(1073741827, 0))
328 assert_equal(Complex(Rational(1073741789, 1073741827), 1),
329 Complex(1073741789, 1073741827) / Complex(1073741827, 0))
330 assert_equal(Complex(2147483578, 2147483616),
331 Complex(1073741789, 1073741827) + Complex(1073741789, 1073741789))
332 assert_equal(Complex(0, 38),
333 Complex(1073741789, 1073741827) - Complex(1073741789, 1073741789))
334 assert_equal(Complex(-40802187982, 2305842899692029024),
335 Complex(1073741789, 1073741827) * Complex(1073741789, 1073741789))
336 assert_equal(Complex(Rational(1073741808, 1073741789), Rational(19, 1073741789)),
337 Complex(1073741789, 1073741827) / Complex(1073741789, 1073741789))
338 assert_equal(Complex(2147483578, 2147483654),
339 Complex(1073741789, 1073741827) + Complex(1073741789, 1073741827))
340 assert_equal(Complex(0, 0),
341 Complex(1073741789, 1073741827) - Complex(1073741789, 1073741827))
342 assert_equal(Complex(-81604377408, 2305842940494217006),
343 Complex(1073741789, 1073741827) * Complex(1073741789, 1073741827))
344 assert_equal(Complex(1, 0),
345 Complex(1073741789, 1073741827) / Complex(1073741789, 1073741827))
346 assert_equal(Complex(2147483616, 2147483654),
347 Complex(1073741789, 1073741827) + Complex(1073741827, 1073741827))
348 assert_equal(Complex(-38, 0),
349 Complex(1073741789, 1073741827) - Complex(1073741827, 1073741827))
350 assert_equal(Complex(-40802189426, 2305842981296406432),
351 Complex(1073741789, 1073741827) * Complex(1073741827, 1073741827))
352 assert_equal(Complex(Rational(1073741808, 1073741827), Rational(19, 1073741827)),
353 Complex(1073741789, 1073741827) / Complex(1073741827, 1073741827))
354 assert_equal(Complex(Rational(1152921471320850292, 1073741827), Rational(1152921512123039718, 1073741827)),
355 Complex(1073741789, 1073741827) + Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
356 assert_equal(Complex(Rational(1152921469173366714, 1073741827), Rational(1152921509975556140, 1073741827)),
357 Complex(1073741789, 1073741827) - Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
358 assert_equal(Complex(Rational(-40802187982, 1073741827), Rational(2305842899692029024, 1073741827)),
359 Complex(1073741789, 1073741827) * Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
360 assert_equal(Complex(Rational(1152921490648203216, 1073741789), Rational(20401094713, 1073741789)),
361 Complex(1073741789, 1073741827) / Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
362 assert_equal(Complex(Rational(1152921430518662348, 1073741789), Rational(1152921471320850330, 1073741789)),
363 Complex(1073741789, 1073741827) + Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
364 assert_equal(Complex(Rational(1152921428371178694, 1073741789), Rational(1152921469173366676, 1073741789)),
365 Complex(1073741789, 1073741827) - Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
366 assert_equal(Complex(Rational(-40802189426, 1073741789), Rational(2305842981296406432, 1073741789)),
367 Complex(1073741789, 1073741827) * Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
368 assert_equal(Complex(Rational(1152921449846014512, 1073741827), Rational(20401093991, 1073741827)),
369 Complex(1073741789, 1073741827) / Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
370 assert_equal(Complex(Rational(1152921471320850292, 1073741827), Rational(1152921471320850330, 1073741789)),
371 Complex(1073741789, 1073741827) + Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
372 assert_equal(Complex(Rational(1152921469173366714, 1073741827), Rational(1152921469173366676, 1073741789)),
373 Complex(1073741789, 1073741827) - Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
374 assert_equal(Complex(Rational(-131433047608170424214, 1152921470247108503), 2147483616),
375 Complex(1073741789, 1073741827) * Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
376 assert_equal(Complex(Rational(1427247586367724281184137892451027617484788528, 1329227916556757626754787505905300241), Rational(-25255330414578331645234047212843119171, 1329227916556757626754787505905300241)),
377 Complex(1073741789, 1073741827) / Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
378 assert_equal(Complex(1073741827, 1073741827), +Complex(1073741827, 1073741827))
379 assert_equal(Complex(-1073741827, -1073741827), -Complex(1073741827, 1073741827))
380 assert_equal(Complex(1073741828, 1073741827),
381 Complex(1073741827, 1073741827) + Complex(1, 0))
382 assert_equal(Complex(1073741826, 1073741827),
383 Complex(1073741827, 1073741827) - Complex(1, 0))
384 assert_equal(Complex(1073741827, 1073741827),
385 Complex(1073741827, 1073741827) * Complex(1, 0))
386 assert_equal(Complex(1073741827, 1073741827),
387 Complex(1073741827, 1073741827) / Complex(1, 0))
388 assert_equal(Complex(2147483616, 1073741827),
389 Complex(1073741827, 1073741827) + Complex(1073741789, 0))
390 assert_equal(Complex(38, 1073741827),
391 Complex(1073741827, 1073741827) - Complex(1073741789, 0))
392 assert_equal(Complex(1152921470247108503, 1152921470247108503),
393 Complex(1073741827, 1073741827) * Complex(1073741789, 0))
394 assert_equal(Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)),
395 Complex(1073741827, 1073741827) / Complex(1073741789, 0))
396 assert_equal(Complex(2147483654, 1073741827),
397 Complex(1073741827, 1073741827) + Complex(1073741827, 0))
398 assert_equal(Complex(0, 1073741827),
399 Complex(1073741827, 1073741827) - Complex(1073741827, 0))
400 assert_equal(Complex(1152921511049297929, 1152921511049297929),
401 Complex(1073741827, 1073741827) * Complex(1073741827, 0))
402 assert_equal(Complex(1, 1),
403 Complex(1073741827, 1073741827) / Complex(1073741827, 0))
404 assert_equal(Complex(2147483616, 2147483616),
405 Complex(1073741827, 1073741827) + Complex(1073741789, 1073741789))
406 assert_equal(Complex(38, 38),
407 Complex(1073741827, 1073741827) - Complex(1073741789, 1073741789))
408 assert_equal(Complex(0, 2305842940494217006),
409 Complex(1073741827, 1073741827) * Complex(1073741789, 1073741789))
410 assert_equal(Complex(Rational(1073741827, 1073741789), 0),
411 Complex(1073741827, 1073741827) / Complex(1073741789, 1073741789))
412 assert_equal(Complex(2147483616, 2147483654),
413 Complex(1073741827, 1073741827) + Complex(1073741789, 1073741827))
414 assert_equal(Complex(38, 0),
415 Complex(1073741827, 1073741827) - Complex(1073741789, 1073741827))
416 assert_equal(Complex(-40802189426, 2305842981296406432),
417 Complex(1073741827, 1073741827) * Complex(1073741789, 1073741827))
418 assert_equal(Complex(Rational(1152921490648203216, 1152921470247109225), Rational(-20401094713, 1152921470247109225)),
419 Complex(1073741827, 1073741827) / Complex(1073741789, 1073741827))
420 assert_equal(Complex(2147483654, 2147483654),
421 Complex(1073741827, 1073741827) + Complex(1073741827, 1073741827))
422 assert_equal(Complex(0, 0),
423 Complex(1073741827, 1073741827) - Complex(1073741827, 1073741827))
424 assert_equal(Complex(0, 2305843022098595858),
425 Complex(1073741827, 1073741827) * Complex(1073741827, 1073741827))
426 assert_equal(Complex(1, 0),
427 Complex(1073741827, 1073741827) / Complex(1073741827, 1073741827))
428 assert_equal(Complex(Rational(1152921512123039718, 1073741827), Rational(1152921512123039718, 1073741827)),
429 Complex(1073741827, 1073741827) + Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
430 assert_equal(Complex(Rational(1152921509975556140, 1073741827), Rational(1152921509975556140, 1073741827)),
431 Complex(1073741827, 1073741827) - Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
432 assert_equal(Complex(0, 2147483578),
433 Complex(1073741827, 1073741827) * Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
434 assert_equal(Complex(Rational(1152921511049297929, 1073741789), 0),
435 Complex(1073741827, 1073741827) / Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
436 assert_equal(Complex(Rational(1152921471320850330, 1073741789), Rational(1152921471320850330, 1073741789)),
437 Complex(1073741827, 1073741827) + Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
438 assert_equal(Complex(Rational(1152921469173366676, 1073741789), Rational(1152921469173366676, 1073741789)),
439 Complex(1073741827, 1073741827) - Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
440 assert_equal(Complex(0, Rational(2305843022098595858, 1073741789)),
441 Complex(1073741827, 1073741827) * Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
442 assert_equal(Complex(1073741789, 0),
443 Complex(1073741827, 1073741827) / Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
444 assert_equal(Complex(Rational(1152921512123039718, 1073741827), Rational(1152921471320850330, 1073741789)),
445 Complex(1073741827, 1073741827) + Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
446 assert_equal(Complex(Rational(1152921509975556140, 1073741827), Rational(1152921469173366676, 1073741789)),
447 Complex(1073741827, 1073741827) - Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
448 assert_equal(Complex(Rational(-81604377408, 1073741789), Rational(2305842940494218450, 1073741789)),
449 Complex(1073741827, 1073741827) * Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
450 assert_equal(Complex(Rational(1427247611623053801969816945064593334552299725, 1329227916556757626754787505905300241), Rational(-50510661722949347514642033621130734624, 1329227916556757626754787505905300241)),
451 Complex(1073741827, 1073741827) / Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
452 assert_equal(Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)), +Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
453 assert_equal(Complex(Rational(-1073741789, 1073741827), Rational(-1073741789, 1073741827)), -Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
454 assert_equal(Complex(Rational(2147483616, 1073741827), Rational(1073741789, 1073741827)),
455 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) + Complex(1, 0))
456 assert_equal(Complex(Rational(-38, 1073741827), Rational(1073741789, 1073741827)),
457 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) - Complex(1, 0))
458 assert_equal(Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)),
459 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) * Complex(1, 0))
460 assert_equal(Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)),
461 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) / Complex(1, 0))
462 assert_equal(Complex(Rational(1152921471320850292, 1073741827), Rational(1073741789, 1073741827)),
463 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) + Complex(1073741789, 0))
464 assert_equal(Complex(Rational(-1152921469173366714, 1073741827), Rational(1073741789, 1073741827)),
465 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) - Complex(1073741789, 0))
466 assert_equal(Complex(Rational(1152921429444920521, 1073741827), Rational(1152921429444920521, 1073741827)),
467 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) * Complex(1073741789, 0))
468 assert_equal(Complex(Rational(1, 1073741827), Rational(1, 1073741827)),
469 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) / Complex(1073741789, 0))
470 assert_equal(Complex(Rational(1152921512123039718, 1073741827), Rational(1073741789, 1073741827)),
471 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) + Complex(1073741827, 0))
472 assert_equal(Complex(Rational(-1152921509975556140, 1073741827), Rational(1073741789, 1073741827)),
473 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) - Complex(1073741827, 0))
474 assert_equal(Complex(1073741789, 1073741789),
475 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) * Complex(1073741827, 0))
476 assert_equal(Complex(Rational(1073741789, 1152921511049297929), Rational(1073741789, 1152921511049297929)),
477 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) / Complex(1073741827, 0))
478 assert_equal(Complex(Rational(1152921471320850292, 1073741827), Rational(1152921471320850292, 1073741827)),
479 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) + Complex(1073741789, 1073741789))
480 assert_equal(Complex(Rational(-1152921469173366714, 1073741827), Rational(-1152921469173366714, 1073741827)),
481 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) - Complex(1073741789, 1073741789))
482 assert_equal(Complex(0, Rational(2305842858889841042, 1073741827)),
483 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) * Complex(1073741789, 1073741789))
484 assert_equal(Complex(Rational(1, 1073741827), 0),
485 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) / Complex(1073741789, 1073741789))
486 assert_equal(Complex(Rational(1152921471320850292, 1073741827), Rational(1152921512123039718, 1073741827)),
487 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) + Complex(1073741789, 1073741827))
488 assert_equal(Complex(Rational(-1152921469173366714, 1073741827), Rational(-1152921509975556140, 1073741827)),
489 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) - Complex(1073741789, 1073741827))
490 assert_equal(Complex(Rational(-40802187982, 1073741827), Rational(2305842899692029024, 1073741827)),
491 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) * Complex(1073741789, 1073741827))
492 assert_equal(Complex(Rational(1152921449846014512, 1237940005850657200720054075), Rational(-20401093991, 1237940005850657200720054075)),
493 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) / Complex(1073741789, 1073741827))
494 assert_equal(Complex(Rational(1152921512123039718, 1073741827), Rational(1152921512123039718, 1073741827)),
495 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) + Complex(1073741827, 1073741827))
496 assert_equal(Complex(Rational(-1152921509975556140, 1073741827), Rational(-1152921509975556140, 1073741827)),
497 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) - Complex(1073741827, 1073741827))
498 assert_equal(Complex(0, 2147483578),
499 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) * Complex(1073741827, 1073741827))
500 assert_equal(Complex(Rational(1073741789, 1152921511049297929), 0),
501 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) / Complex(1073741827, 1073741827))
502 assert_equal(Complex(Rational(2147483578, 1073741827), Rational(2147483578, 1073741827)),
503 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) + Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
504 assert_equal(Complex(0, 0),
505 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) - Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
506 assert_equal(Complex(0, Rational(2305842858889841042, 1152921511049297929)),
507 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) * Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
508 assert_equal(Complex(1, 0),
509 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) / Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
510 assert_equal(Complex(Rational(2305842940494218450, 1152921470247108503), Rational(2305842940494218450, 1152921470247108503)),
511 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) + Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
512 assert_equal(Complex(Rational(-81604377408, 1152921470247108503), Rational(-81604377408, 1152921470247108503)),
513 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) - Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
514 assert_equal(Complex(0, 2),
515 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) * Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
516 assert_equal(Complex(Rational(1152921429444920521, 1152921511049297929), 0),
517 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) / Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
518 assert_equal(Complex(Rational(2147483578, 1073741827), Rational(2305842940494218450, 1152921470247108503)),
519 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) + Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
520 assert_equal(Complex(0, Rational(-81604377408, 1152921470247108503)),
521 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) - Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
522 assert_equal(Complex(Rational(-81604377408, 1152921511049297929), Rational(2305842940494218450, 1152921511049297929)),
523 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) * Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
524 assert_equal(Complex(Rational(1329227869515036572020512360130906225, 1329227916556757626754787505905300241), Rational(-47041717725097069072123994784, 1329227916556757626754787505905300241)),
525 Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)) / Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
526 assert_equal(Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)), +Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
527 assert_equal(Complex(Rational(-1073741827, 1073741789), Rational(-1073741827, 1073741789)), -Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
528 assert_equal(Complex(Rational(2147483616, 1073741789), Rational(1073741827, 1073741789)),
529 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) + Complex(1, 0))
530 assert_equal(Complex(Rational(38, 1073741789), Rational(1073741827, 1073741789)),
531 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) - Complex(1, 0))
532 assert_equal(Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)),
533 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) * Complex(1, 0))
534 assert_equal(Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)),
535 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) / Complex(1, 0))
536 assert_equal(Complex(Rational(1152921430518662348, 1073741789), Rational(1073741827, 1073741789)),
537 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) + Complex(1073741789, 0))
538 assert_equal(Complex(Rational(-1152921428371178694, 1073741789), Rational(1073741827, 1073741789)),
539 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) - Complex(1073741789, 0))
540 assert_equal(Complex(1073741827, 1073741827),
541 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) * Complex(1073741789, 0))
542 assert_equal(Complex(Rational(1073741827, 1152921429444920521), Rational(1073741827, 1152921429444920521)),
543 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) / Complex(1073741789, 0))
544 assert_equal(Complex(Rational(1152921471320850330, 1073741789), Rational(1073741827, 1073741789)),
545 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) + Complex(1073741827, 0))
546 assert_equal(Complex(Rational(-1152921469173366676, 1073741789), Rational(1073741827, 1073741789)),
547 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) - Complex(1073741827, 0))
548 assert_equal(Complex(Rational(1152921511049297929, 1073741789), Rational(1152921511049297929, 1073741789)),
549 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) * Complex(1073741827, 0))
550 assert_equal(Complex(Rational(1, 1073741789), Rational(1, 1073741789)),
551 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) / Complex(1073741827, 0))
552 assert_equal(Complex(Rational(1152921430518662348, 1073741789), Rational(1152921430518662348, 1073741789)),
553 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) + Complex(1073741789, 1073741789))
554 assert_equal(Complex(Rational(-1152921428371178694, 1073741789), Rational(-1152921428371178694, 1073741789)),
555 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) - Complex(1073741789, 1073741789))
556 assert_equal(Complex(0, 2147483654),
557 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) * Complex(1073741789, 1073741789))
558 assert_equal(Complex(Rational(1073741827, 1152921429444920521), 0),
559 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) / Complex(1073741789, 1073741789))
560 assert_equal(Complex(Rational(1152921430518662348, 1073741789), Rational(1152921471320850330, 1073741789)),
561 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) + Complex(1073741789, 1073741827))
562 assert_equal(Complex(Rational(-1152921428371178694, 1073741789), Rational(-1152921469173366676, 1073741789)),
563 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) - Complex(1073741789, 1073741827))
564 assert_equal(Complex(Rational(-40802189426, 1073741789), Rational(2305842981296406432, 1073741789)),
565 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) * Complex(1073741789, 1073741827))
566 assert_equal(Complex(Rational(1152921490648203216, 1237939962039641331329903525), Rational(-20401094713, 1237939962039641331329903525)),
567 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) / Complex(1073741789, 1073741827))
568 assert_equal(Complex(Rational(1152921471320850330, 1073741789), Rational(1152921471320850330, 1073741789)),
569 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) + Complex(1073741827, 1073741827))
570 assert_equal(Complex(Rational(-1152921469173366676, 1073741789), Rational(-1152921469173366676, 1073741789)),
571 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) - Complex(1073741827, 1073741827))
572 assert_equal(Complex(0, Rational(2305843022098595858, 1073741789)),
573 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) * Complex(1073741827, 1073741827))
574 assert_equal(Complex(Rational(1, 1073741789), 0),
575 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) / Complex(1073741827, 1073741827))
576 assert_equal(Complex(Rational(2305842940494218450, 1152921470247108503), Rational(2305842940494218450, 1152921470247108503)),
577 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) + Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
578 assert_equal(Complex(Rational(81604377408, 1152921470247108503), Rational(81604377408, 1152921470247108503)),
579 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) - Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
580 assert_equal(Complex(0, 2),
581 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) * Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
582 assert_equal(Complex(Rational(1152921511049297929, 1152921429444920521), 0),
583 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) / Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
584 assert_equal(Complex(Rational(2147483654, 1073741789), Rational(2147483654, 1073741789)),
585 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) + Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
586 assert_equal(Complex(0, 0),
587 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) - Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
588 assert_equal(Complex(0, Rational(2305843022098595858, 1152921429444920521)),
589 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) * Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
590 assert_equal(Complex(1, 0),
591 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) / Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
592 assert_equal(Complex(Rational(2305842940494218450, 1152921470247108503), Rational(2147483654, 1073741789)),
593 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) + Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
594 assert_equal(Complex(Rational(81604377408, 1152921470247108503), 0),
595 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) - Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
596 assert_equal(Complex(Rational(-81604377408, 1152921429444920521), Rational(2305842940494218450, 1152921429444920521)),
597 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) * Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
598 assert_equal(Complex(Rational(1329227963598475351851856578029295025, 1329227916556757626754787505905300241), Rational(-47041721054734275145774394016, 1329227916556757626754787505905300241)),
599 Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)) / Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
600 assert_equal(Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)), +Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
601 assert_equal(Complex(Rational(-1073741789, 1073741827), Rational(-1073741827, 1073741789)), -Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
602 assert_equal(Complex(Rational(2147483616, 1073741827), Rational(1073741827, 1073741789)),
603 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) + Complex(1, 0))
604 assert_equal(Complex(Rational(-38, 1073741827), Rational(1073741827, 1073741789)),
605 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) - Complex(1, 0))
606 assert_equal(Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)),
607 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) * Complex(1, 0))
608 assert_equal(Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)),
609 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) / Complex(1, 0))
610 assert_equal(Complex(Rational(1152921471320850292, 1073741827), Rational(1073741827, 1073741789)),
611 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) + Complex(1073741789, 0))
612 assert_equal(Complex(Rational(-1152921469173366714, 1073741827), Rational(1073741827, 1073741789)),
613 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) - Complex(1073741789, 0))
614 assert_equal(Complex(Rational(1152921429444920521, 1073741827), 1073741827),
615 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) * Complex(1073741789, 0))
616 assert_equal(Complex(Rational(1, 1073741827), Rational(1073741827, 1152921429444920521)),
617 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) / Complex(1073741789, 0))
618 assert_equal(Complex(Rational(1152921512123039718, 1073741827), Rational(1073741827, 1073741789)),
619 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) + Complex(1073741827, 0))
620 assert_equal(Complex(Rational(-1152921509975556140, 1073741827), Rational(1073741827, 1073741789)),
621 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) - Complex(1073741827, 0))
622 assert_equal(Complex(1073741789, Rational(1152921511049297929, 1073741789)),
623 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) * Complex(1073741827, 0))
624 assert_equal(Complex(Rational(1073741789, 1152921511049297929), Rational(1, 1073741789)),
625 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) / Complex(1073741827, 0))
626 assert_equal(Complex(Rational(1152921471320850292, 1073741827), Rational(1152921430518662348, 1073741789)),
627 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) + Complex(1073741789, 1073741789))
628 assert_equal(Complex(Rational(-1152921469173366714, 1073741827), Rational(-1152921428371178694, 1073741789)),
629 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) - Complex(1073741789, 1073741789))
630 assert_equal(Complex(Rational(-81604377408, 1073741827), Rational(2305842940494218450, 1073741827)),
631 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) * Complex(1073741789, 1073741789))
632 assert_equal(Complex(Rational(1152921470247109225, 1237939962039640556088331867), Rational(40802188704, 1237939962039640556088331867)),
633 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) / Complex(1073741789, 1073741789))
634 assert_equal(Complex(Rational(1152921471320850292, 1073741827), Rational(1152921471320850330, 1073741789)),
635 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) + Complex(1073741789, 1073741827))
636 assert_equal(Complex(Rational(-1152921469173366714, 1073741827), Rational(-1152921469173366676, 1073741789)),
637 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) - Complex(1073741789, 1073741827))
638 assert_equal(Complex(Rational(-131433047608170424214, 1152921470247108503), 2147483616),
639 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) * Complex(1073741789, 1073741827))
640 assert_equal(Complex(Rational(1237939983945150041266564176, 1329227916556755129526882950667240175), Rational(19, 1152921470247109225)),
641 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) / Complex(1073741789, 1073741827))
642 assert_equal(Complex(Rational(1152921512123039718, 1073741827), Rational(1152921471320850330, 1073741789)),
643 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) + Complex(1073741827, 1073741827))
644 assert_equal(Complex(Rational(-1152921509975556140, 1073741827), Rational(-1152921469173366676, 1073741789)),
645 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) - Complex(1073741827, 1073741827))
646 assert_equal(Complex(Rational(-81604377408, 1073741789), Rational(2305842940494218450, 1073741789)),
647 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) * Complex(1073741827, 1073741827))
648 assert_equal(Complex(Rational(1152921470247109225, 1237940005850656425478454981), Rational(40802188704, 1237940005850656425478454981)),
649 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) / Complex(1073741827, 1073741827))
650 assert_equal(Complex(Rational(2147483578, 1073741827), Rational(2305842940494218450, 1152921470247108503)),
651 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) + Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
652 assert_equal(Complex(0, Rational(81604377408, 1152921470247108503)),
653 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) - Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
654 assert_equal(Complex(Rational(-81604377408, 1152921511049297929), Rational(2305842940494218450, 1152921511049297929)),
655 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) * Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
656 assert_equal(Complex(Rational(1152921470247109225, 1152921429444920521), Rational(40802188704, 1152921429444920521)),
657 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) / Complex(Rational(1073741789, 1073741827), Rational(1073741789, 1073741827)))
658 assert_equal(Complex(Rational(2305842940494218450, 1152921470247108503), Rational(2147483654, 1073741789)),
659 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) + Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
660 assert_equal(Complex(Rational(-81604377408, 1152921470247108503), 0),
661 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) - Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
662 assert_equal(Complex(Rational(-81604377408, 1152921429444920521), Rational(2305842940494218450, 1152921429444920521)),
663 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) * Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
664 assert_equal(Complex(Rational(1152921470247109225, 1152921511049297929), Rational(40802188704, 1152921511049297929)),
665 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) / Complex(Rational(1073741827, 1073741789), Rational(1073741827, 1073741789)))
666 assert_equal(Complex(Rational(2147483578, 1073741827), Rational(2147483654, 1073741789)),
667 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) + Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
668 assert_equal(Complex(0, 0),
669 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) - Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
670 assert_equal(Complex(Rational(-188166877559662688435796777600, 1329227916556754297117581432254901009), 2),
671 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) * Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
672 assert_equal(Complex(1, 0),
673 Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)) / Complex(Rational(1073741789, 1073741827), Rational(1073741827, 1073741789)))
677 assert_equal('0.0+0.0i', (+Complex(+0.0, +0.0)).to_s)
678 assert_equal('-0.0-0.0i', (-Complex(+0.0, +0.0)).to_s)
679 assert_equal('0.0+0.0i', (Complex(+0.0, +0.0) + Complex(+0.0, +0.0)).to_s)
680 assert_equal('0.0+0.0i', (Complex(+0.0, +0.0) - Complex(+0.0, +0.0)).to_s)
681 assert_equal('0.0+0.0i', (Complex(+0.0, +0.0) * Complex(+0.0, +0.0)).to_s)
682 assert_equal('0.0+0.0i', (Complex(+0.0, +0.0) + Complex(-0.0, +0.0)).to_s)
683 assert_equal('0.0+0.0i', (Complex(+0.0, +0.0) - Complex(-0.0, +0.0)).to_s)
684 assert_equal('-0.0+0.0i', (Complex(+0.0, +0.0) * Complex(-0.0, +0.0)).to_s)
685 assert_equal('0.0+0.0i', (Complex(+0.0, +0.0) + Complex(+0.0, -0.0)).to_s)
686 assert_equal('0.0+0.0i', (Complex(+0.0, +0.0) - Complex(+0.0, -0.0)).to_s)
687 assert_equal('0.0+0.0i', (Complex(+0.0, +0.0) * Complex(+0.0, -0.0)).to_s)
688 assert_equal('0.0+0.0i', (Complex(+0.0, +0.0) + Complex(-0.0, -0.0)).to_s)
689 assert_equal('0.0+0.0i', (Complex(+0.0, +0.0) - Complex(-0.0, -0.0)).to_s)
690 assert_equal('0.0-0.0i', (Complex(+0.0, +0.0) * Complex(-0.0, -0.0)).to_s)
691 assert_equal('-0.0+0.0i', (+Complex(-0.0, +0.0)).to_s)
692 assert_equal('0.0-0.0i', (-Complex(-0.0, +0.0)).to_s)
693 assert_equal('0.0+0.0i', (Complex(-0.0, +0.0) + Complex(+0.0, +0.0)).to_s)
694 assert_equal('-0.0+0.0i', (Complex(-0.0, +0.0) - Complex(+0.0, +0.0)).to_s)
695 assert_equal('-0.0+0.0i', (Complex(-0.0, +0.0) * Complex(+0.0, +0.0)).to_s)
696 assert_equal('-0.0+0.0i', (Complex(-0.0, +0.0) + Complex(-0.0, +0.0)).to_s)
697 assert_equal('0.0+0.0i', (Complex(-0.0, +0.0) - Complex(-0.0, +0.0)).to_s)
698 assert_equal('0.0-0.0i', (Complex(-0.0, +0.0) * Complex(-0.0, +0.0)).to_s)
699 assert_equal('0.0+0.0i', (Complex(-0.0, +0.0) + Complex(+0.0, -0.0)).to_s)
700 assert_equal('-0.0+0.0i', (Complex(-0.0, +0.0) - Complex(+0.0, -0.0)).to_s)
701 assert_equal('0.0+0.0i', (Complex(-0.0, +0.0) * Complex(+0.0, -0.0)).to_s)
702 assert_equal('-0.0+0.0i', (Complex(-0.0, +0.0) + Complex(-0.0, -0.0)).to_s)
703 assert_equal('0.0+0.0i', (Complex(-0.0, +0.0) - Complex(-0.0, -0.0)).to_s)
704 assert_equal('0.0+0.0i', (Complex(-0.0, +0.0) * Complex(-0.0, -0.0)).to_s)
705 assert_equal('0.0-0.0i', (+Complex(+0.0, -0.0)).to_s)
706 assert_equal('-0.0+0.0i', (-Complex(+0.0, -0.0)).to_s)
707 assert_equal('0.0+0.0i', (Complex(+0.0, -0.0) + Complex(+0.0, +0.0)).to_s)
708 assert_equal('0.0-0.0i', (Complex(+0.0, -0.0) - Complex(+0.0, +0.0)).to_s)
709 assert_equal('0.0+0.0i', (Complex(+0.0, -0.0) * Complex(+0.0, +0.0)).to_s)
710 assert_equal('0.0+0.0i', (Complex(+0.0, -0.0) + Complex(-0.0, +0.0)).to_s)
711 assert_equal('0.0-0.0i', (Complex(+0.0, -0.0) - Complex(-0.0, +0.0)).to_s)
712 assert_equal('0.0+0.0i', (Complex(+0.0, -0.0) * Complex(-0.0, +0.0)).to_s)
713 assert_equal('0.0-0.0i', (Complex(+0.0, -0.0) + Complex(+0.0, -0.0)).to_s)
714 assert_equal('0.0+0.0i', (Complex(+0.0, -0.0) - Complex(+0.0, -0.0)).to_s)
715 assert_equal('0.0-0.0i', (Complex(+0.0, -0.0) * Complex(+0.0, -0.0)).to_s)
716 assert_equal('0.0-0.0i', (Complex(+0.0, -0.0) + Complex(-0.0, -0.0)).to_s)
717 assert_equal('0.0+0.0i', (Complex(+0.0, -0.0) - Complex(-0.0, -0.0)).to_s)
718 assert_equal('-0.0+0.0i', (Complex(+0.0, -0.0) * Complex(-0.0, -0.0)).to_s)
719 assert_equal('-0.0-0.0i', (+Complex(-0.0, -0.0)).to_s)
720 assert_equal('0.0+0.0i', (-Complex(-0.0, -0.0)).to_s)
721 assert_equal('0.0+0.0i', (Complex(-0.0, -0.0) + Complex(+0.0, +0.0)).to_s)
722 assert_equal('-0.0-0.0i', (Complex(-0.0, -0.0) - Complex(+0.0, +0.0)).to_s)
723 assert_equal('0.0-0.0i', (Complex(-0.0, -0.0) * Complex(+0.0, +0.0)).to_s)
724 assert_equal('-0.0+0.0i', (Complex(-0.0, -0.0) + Complex(-0.0, +0.0)).to_s)
725 assert_equal('0.0-0.0i', (Complex(-0.0, -0.0) - Complex(-0.0, +0.0)).to_s)
726 assert_equal('0.0+0.0i', (Complex(-0.0, -0.0) * Complex(-0.0, +0.0)).to_s)
727 assert_equal('0.0-0.0i', (Complex(-0.0, -0.0) + Complex(+0.0, -0.0)).to_s)
728 assert_equal('-0.0+0.0i', (Complex(-0.0, -0.0) - Complex(+0.0, -0.0)).to_s)
729 assert_equal('-0.0+0.0i', (Complex(-0.0, -0.0) * Complex(+0.0, -0.0)).to_s)
730 assert_equal('-0.0-0.0i', (Complex(-0.0, -0.0) + Complex(-0.0, -0.0)).to_s)
731 assert_equal('0.0+0.0i', (Complex(-0.0, -0.0) - Complex(-0.0, -0.0)).to_s)
732 assert_equal('0.0+0.0i', (Complex(-0.0, -0.0) * Complex(-0.0, -0.0)).to_s)