1--TEST--
2Test - operator : 64bit long tests
3--SKIPIF--
4<?php
5if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
6?>
7--FILE--
8<?php
9
10define("MAX_64Bit", 9223372036854775807);
11define("MAX_32Bit", 2147483647);
12define("MIN_64Bit", -9223372036854775807 - 1);
13define("MIN_32Bit", -2147483647 - 1);
14
15$longVals = array(
16    MAX_64Bit, MIN_64Bit, MAX_32Bit, MIN_32Bit, MAX_64Bit - MAX_32Bit, MIN_64Bit - MIN_32Bit,
17    MAX_32Bit + 1, MIN_32Bit - 1, MAX_32Bit * 2, (MAX_32Bit * 2) + 1, (MAX_32Bit * 2) - 1,
18    MAX_64Bit -1, MAX_64Bit + 1, MIN_64Bit + 1, MIN_64Bit - 1
19);
20
21$otherVals = array(0, 1, -1, 7, 9, 65, -44, MAX_32Bit, MAX_64Bit);
22
23error_reporting(E_ERROR);
24
25foreach ($longVals as $longVal) {
26   foreach($otherVals as $otherVal) {
27	   echo "--- testing: $longVal - $otherVal ---\n";
28      var_dump($longVal-$otherVal);
29   }
30}
31
32foreach ($otherVals as $otherVal) {
33   foreach($longVals as $longVal) {
34	   echo "--- testing: $otherVal - $longVal ---\n";
35      var_dump($otherVal-$longVal);
36   }
37}
38
39?>
40===DONE===
41--EXPECT--
42--- testing: 9223372036854775807 - 0 ---
43int(9223372036854775807)
44--- testing: 9223372036854775807 - 1 ---
45int(9223372036854775806)
46--- testing: 9223372036854775807 - -1 ---
47float(9.2233720368548E+18)
48--- testing: 9223372036854775807 - 7 ---
49int(9223372036854775800)
50--- testing: 9223372036854775807 - 9 ---
51int(9223372036854775798)
52--- testing: 9223372036854775807 - 65 ---
53int(9223372036854775742)
54--- testing: 9223372036854775807 - -44 ---
55float(9.2233720368548E+18)
56--- testing: 9223372036854775807 - 2147483647 ---
57int(9223372034707292160)
58--- testing: 9223372036854775807 - 9223372036854775807 ---
59int(0)
60--- testing: -9223372036854775808 - 0 ---
61int(-9223372036854775808)
62--- testing: -9223372036854775808 - 1 ---
63float(-9.2233720368548E+18)
64--- testing: -9223372036854775808 - -1 ---
65int(-9223372036854775807)
66--- testing: -9223372036854775808 - 7 ---
67float(-9.2233720368548E+18)
68--- testing: -9223372036854775808 - 9 ---
69float(-9.2233720368548E+18)
70--- testing: -9223372036854775808 - 65 ---
71float(-9.2233720368548E+18)
72--- testing: -9223372036854775808 - -44 ---
73int(-9223372036854775764)
74--- testing: -9223372036854775808 - 2147483647 ---
75float(-9.2233720390023E+18)
76--- testing: -9223372036854775808 - 9223372036854775807 ---
77float(-1.844674407371E+19)
78--- testing: 2147483647 - 0 ---
79int(2147483647)
80--- testing: 2147483647 - 1 ---
81int(2147483646)
82--- testing: 2147483647 - -1 ---
83int(2147483648)
84--- testing: 2147483647 - 7 ---
85int(2147483640)
86--- testing: 2147483647 - 9 ---
87int(2147483638)
88--- testing: 2147483647 - 65 ---
89int(2147483582)
90--- testing: 2147483647 - -44 ---
91int(2147483691)
92--- testing: 2147483647 - 2147483647 ---
93int(0)
94--- testing: 2147483647 - 9223372036854775807 ---
95int(-9223372034707292160)
96--- testing: -2147483648 - 0 ---
97int(-2147483648)
98--- testing: -2147483648 - 1 ---
99int(-2147483649)
100--- testing: -2147483648 - -1 ---
101int(-2147483647)
102--- testing: -2147483648 - 7 ---
103int(-2147483655)
104--- testing: -2147483648 - 9 ---
105int(-2147483657)
106--- testing: -2147483648 - 65 ---
107int(-2147483713)
108--- testing: -2147483648 - -44 ---
109int(-2147483604)
110--- testing: -2147483648 - 2147483647 ---
111int(-4294967295)
112--- testing: -2147483648 - 9223372036854775807 ---
113float(-9.2233720390023E+18)
114--- testing: 9223372034707292160 - 0 ---
115int(9223372034707292160)
116--- testing: 9223372034707292160 - 1 ---
117int(9223372034707292159)
118--- testing: 9223372034707292160 - -1 ---
119int(9223372034707292161)
120--- testing: 9223372034707292160 - 7 ---
121int(9223372034707292153)
122--- testing: 9223372034707292160 - 9 ---
123int(9223372034707292151)
124--- testing: 9223372034707292160 - 65 ---
125int(9223372034707292095)
126--- testing: 9223372034707292160 - -44 ---
127int(9223372034707292204)
128--- testing: 9223372034707292160 - 2147483647 ---
129int(9223372032559808513)
130--- testing: 9223372034707292160 - 9223372036854775807 ---
131int(-2147483647)
132--- testing: -9223372034707292160 - 0 ---
133int(-9223372034707292160)
134--- testing: -9223372034707292160 - 1 ---
135int(-9223372034707292161)
136--- testing: -9223372034707292160 - -1 ---
137int(-9223372034707292159)
138--- testing: -9223372034707292160 - 7 ---
139int(-9223372034707292167)
140--- testing: -9223372034707292160 - 9 ---
141int(-9223372034707292169)
142--- testing: -9223372034707292160 - 65 ---
143int(-9223372034707292225)
144--- testing: -9223372034707292160 - -44 ---
145int(-9223372034707292116)
146--- testing: -9223372034707292160 - 2147483647 ---
147int(-9223372036854775807)
148--- testing: -9223372034707292160 - 9223372036854775807 ---
149float(-1.8446744071562E+19)
150--- testing: 2147483648 - 0 ---
151int(2147483648)
152--- testing: 2147483648 - 1 ---
153int(2147483647)
154--- testing: 2147483648 - -1 ---
155int(2147483649)
156--- testing: 2147483648 - 7 ---
157int(2147483641)
158--- testing: 2147483648 - 9 ---
159int(2147483639)
160--- testing: 2147483648 - 65 ---
161int(2147483583)
162--- testing: 2147483648 - -44 ---
163int(2147483692)
164--- testing: 2147483648 - 2147483647 ---
165int(1)
166--- testing: 2147483648 - 9223372036854775807 ---
167int(-9223372034707292159)
168--- testing: -2147483649 - 0 ---
169int(-2147483649)
170--- testing: -2147483649 - 1 ---
171int(-2147483650)
172--- testing: -2147483649 - -1 ---
173int(-2147483648)
174--- testing: -2147483649 - 7 ---
175int(-2147483656)
176--- testing: -2147483649 - 9 ---
177int(-2147483658)
178--- testing: -2147483649 - 65 ---
179int(-2147483714)
180--- testing: -2147483649 - -44 ---
181int(-2147483605)
182--- testing: -2147483649 - 2147483647 ---
183int(-4294967296)
184--- testing: -2147483649 - 9223372036854775807 ---
185float(-9.2233720390023E+18)
186--- testing: 4294967294 - 0 ---
187int(4294967294)
188--- testing: 4294967294 - 1 ---
189int(4294967293)
190--- testing: 4294967294 - -1 ---
191int(4294967295)
192--- testing: 4294967294 - 7 ---
193int(4294967287)
194--- testing: 4294967294 - 9 ---
195int(4294967285)
196--- testing: 4294967294 - 65 ---
197int(4294967229)
198--- testing: 4294967294 - -44 ---
199int(4294967338)
200--- testing: 4294967294 - 2147483647 ---
201int(2147483647)
202--- testing: 4294967294 - 9223372036854775807 ---
203int(-9223372032559808513)
204--- testing: 4294967295 - 0 ---
205int(4294967295)
206--- testing: 4294967295 - 1 ---
207int(4294967294)
208--- testing: 4294967295 - -1 ---
209int(4294967296)
210--- testing: 4294967295 - 7 ---
211int(4294967288)
212--- testing: 4294967295 - 9 ---
213int(4294967286)
214--- testing: 4294967295 - 65 ---
215int(4294967230)
216--- testing: 4294967295 - -44 ---
217int(4294967339)
218--- testing: 4294967295 - 2147483647 ---
219int(2147483648)
220--- testing: 4294967295 - 9223372036854775807 ---
221int(-9223372032559808512)
222--- testing: 4294967293 - 0 ---
223int(4294967293)
224--- testing: 4294967293 - 1 ---
225int(4294967292)
226--- testing: 4294967293 - -1 ---
227int(4294967294)
228--- testing: 4294967293 - 7 ---
229int(4294967286)
230--- testing: 4294967293 - 9 ---
231int(4294967284)
232--- testing: 4294967293 - 65 ---
233int(4294967228)
234--- testing: 4294967293 - -44 ---
235int(4294967337)
236--- testing: 4294967293 - 2147483647 ---
237int(2147483646)
238--- testing: 4294967293 - 9223372036854775807 ---
239int(-9223372032559808514)
240--- testing: 9223372036854775806 - 0 ---
241int(9223372036854775806)
242--- testing: 9223372036854775806 - 1 ---
243int(9223372036854775805)
244--- testing: 9223372036854775806 - -1 ---
245int(9223372036854775807)
246--- testing: 9223372036854775806 - 7 ---
247int(9223372036854775799)
248--- testing: 9223372036854775806 - 9 ---
249int(9223372036854775797)
250--- testing: 9223372036854775806 - 65 ---
251int(9223372036854775741)
252--- testing: 9223372036854775806 - -44 ---
253float(9.2233720368548E+18)
254--- testing: 9223372036854775806 - 2147483647 ---
255int(9223372034707292159)
256--- testing: 9223372036854775806 - 9223372036854775807 ---
257int(-1)
258--- testing: 9.2233720368548E+18 - 0 ---
259float(9.2233720368548E+18)
260--- testing: 9.2233720368548E+18 - 1 ---
261float(9.2233720368548E+18)
262--- testing: 9.2233720368548E+18 - -1 ---
263float(9.2233720368548E+18)
264--- testing: 9.2233720368548E+18 - 7 ---
265float(9.2233720368548E+18)
266--- testing: 9.2233720368548E+18 - 9 ---
267float(9.2233720368548E+18)
268--- testing: 9.2233720368548E+18 - 65 ---
269float(9.2233720368548E+18)
270--- testing: 9.2233720368548E+18 - -44 ---
271float(9.2233720368548E+18)
272--- testing: 9.2233720368548E+18 - 2147483647 ---
273float(9.2233720347073E+18)
274--- testing: 9.2233720368548E+18 - 9223372036854775807 ---
275float(0)
276--- testing: -9223372036854775807 - 0 ---
277int(-9223372036854775807)
278--- testing: -9223372036854775807 - 1 ---
279int(-9223372036854775808)
280--- testing: -9223372036854775807 - -1 ---
281int(-9223372036854775806)
282--- testing: -9223372036854775807 - 7 ---
283float(-9.2233720368548E+18)
284--- testing: -9223372036854775807 - 9 ---
285float(-9.2233720368548E+18)
286--- testing: -9223372036854775807 - 65 ---
287float(-9.2233720368548E+18)
288--- testing: -9223372036854775807 - -44 ---
289int(-9223372036854775763)
290--- testing: -9223372036854775807 - 2147483647 ---
291float(-9.2233720390023E+18)
292--- testing: -9223372036854775807 - 9223372036854775807 ---
293float(-1.844674407371E+19)
294--- testing: -9.2233720368548E+18 - 0 ---
295float(-9.2233720368548E+18)
296--- testing: -9.2233720368548E+18 - 1 ---
297float(-9.2233720368548E+18)
298--- testing: -9.2233720368548E+18 - -1 ---
299float(-9.2233720368548E+18)
300--- testing: -9.2233720368548E+18 - 7 ---
301float(-9.2233720368548E+18)
302--- testing: -9.2233720368548E+18 - 9 ---
303float(-9.2233720368548E+18)
304--- testing: -9.2233720368548E+18 - 65 ---
305float(-9.2233720368548E+18)
306--- testing: -9.2233720368548E+18 - -44 ---
307float(-9.2233720368548E+18)
308--- testing: -9.2233720368548E+18 - 2147483647 ---
309float(-9.2233720390023E+18)
310--- testing: -9.2233720368548E+18 - 9223372036854775807 ---
311float(-1.844674407371E+19)
312--- testing: 0 - 9223372036854775807 ---
313int(-9223372036854775807)
314--- testing: 0 - -9223372036854775808 ---
315float(9.2233720368548E+18)
316--- testing: 0 - 2147483647 ---
317int(-2147483647)
318--- testing: 0 - -2147483648 ---
319int(2147483648)
320--- testing: 0 - 9223372034707292160 ---
321int(-9223372034707292160)
322--- testing: 0 - -9223372034707292160 ---
323int(9223372034707292160)
324--- testing: 0 - 2147483648 ---
325int(-2147483648)
326--- testing: 0 - -2147483649 ---
327int(2147483649)
328--- testing: 0 - 4294967294 ---
329int(-4294967294)
330--- testing: 0 - 4294967295 ---
331int(-4294967295)
332--- testing: 0 - 4294967293 ---
333int(-4294967293)
334--- testing: 0 - 9223372036854775806 ---
335int(-9223372036854775806)
336--- testing: 0 - 9.2233720368548E+18 ---
337float(-9.2233720368548E+18)
338--- testing: 0 - -9223372036854775807 ---
339int(9223372036854775807)
340--- testing: 0 - -9.2233720368548E+18 ---
341float(9.2233720368548E+18)
342--- testing: 1 - 9223372036854775807 ---
343int(-9223372036854775806)
344--- testing: 1 - -9223372036854775808 ---
345float(9.2233720368548E+18)
346--- testing: 1 - 2147483647 ---
347int(-2147483646)
348--- testing: 1 - -2147483648 ---
349int(2147483649)
350--- testing: 1 - 9223372034707292160 ---
351int(-9223372034707292159)
352--- testing: 1 - -9223372034707292160 ---
353int(9223372034707292161)
354--- testing: 1 - 2147483648 ---
355int(-2147483647)
356--- testing: 1 - -2147483649 ---
357int(2147483650)
358--- testing: 1 - 4294967294 ---
359int(-4294967293)
360--- testing: 1 - 4294967295 ---
361int(-4294967294)
362--- testing: 1 - 4294967293 ---
363int(-4294967292)
364--- testing: 1 - 9223372036854775806 ---
365int(-9223372036854775805)
366--- testing: 1 - 9.2233720368548E+18 ---
367float(-9.2233720368548E+18)
368--- testing: 1 - -9223372036854775807 ---
369float(9.2233720368548E+18)
370--- testing: 1 - -9.2233720368548E+18 ---
371float(9.2233720368548E+18)
372--- testing: -1 - 9223372036854775807 ---
373int(-9223372036854775808)
374--- testing: -1 - -9223372036854775808 ---
375int(9223372036854775807)
376--- testing: -1 - 2147483647 ---
377int(-2147483648)
378--- testing: -1 - -2147483648 ---
379int(2147483647)
380--- testing: -1 - 9223372034707292160 ---
381int(-9223372034707292161)
382--- testing: -1 - -9223372034707292160 ---
383int(9223372034707292159)
384--- testing: -1 - 2147483648 ---
385int(-2147483649)
386--- testing: -1 - -2147483649 ---
387int(2147483648)
388--- testing: -1 - 4294967294 ---
389int(-4294967295)
390--- testing: -1 - 4294967295 ---
391int(-4294967296)
392--- testing: -1 - 4294967293 ---
393int(-4294967294)
394--- testing: -1 - 9223372036854775806 ---
395int(-9223372036854775807)
396--- testing: -1 - 9.2233720368548E+18 ---
397float(-9.2233720368548E+18)
398--- testing: -1 - -9223372036854775807 ---
399int(9223372036854775806)
400--- testing: -1 - -9.2233720368548E+18 ---
401float(9.2233720368548E+18)
402--- testing: 7 - 9223372036854775807 ---
403int(-9223372036854775800)
404--- testing: 7 - -9223372036854775808 ---
405float(9.2233720368548E+18)
406--- testing: 7 - 2147483647 ---
407int(-2147483640)
408--- testing: 7 - -2147483648 ---
409int(2147483655)
410--- testing: 7 - 9223372034707292160 ---
411int(-9223372034707292153)
412--- testing: 7 - -9223372034707292160 ---
413int(9223372034707292167)
414--- testing: 7 - 2147483648 ---
415int(-2147483641)
416--- testing: 7 - -2147483649 ---
417int(2147483656)
418--- testing: 7 - 4294967294 ---
419int(-4294967287)
420--- testing: 7 - 4294967295 ---
421int(-4294967288)
422--- testing: 7 - 4294967293 ---
423int(-4294967286)
424--- testing: 7 - 9223372036854775806 ---
425int(-9223372036854775799)
426--- testing: 7 - 9.2233720368548E+18 ---
427float(-9.2233720368548E+18)
428--- testing: 7 - -9223372036854775807 ---
429float(9.2233720368548E+18)
430--- testing: 7 - -9.2233720368548E+18 ---
431float(9.2233720368548E+18)
432--- testing: 9 - 9223372036854775807 ---
433int(-9223372036854775798)
434--- testing: 9 - -9223372036854775808 ---
435float(9.2233720368548E+18)
436--- testing: 9 - 2147483647 ---
437int(-2147483638)
438--- testing: 9 - -2147483648 ---
439int(2147483657)
440--- testing: 9 - 9223372034707292160 ---
441int(-9223372034707292151)
442--- testing: 9 - -9223372034707292160 ---
443int(9223372034707292169)
444--- testing: 9 - 2147483648 ---
445int(-2147483639)
446--- testing: 9 - -2147483649 ---
447int(2147483658)
448--- testing: 9 - 4294967294 ---
449int(-4294967285)
450--- testing: 9 - 4294967295 ---
451int(-4294967286)
452--- testing: 9 - 4294967293 ---
453int(-4294967284)
454--- testing: 9 - 9223372036854775806 ---
455int(-9223372036854775797)
456--- testing: 9 - 9.2233720368548E+18 ---
457float(-9.2233720368548E+18)
458--- testing: 9 - -9223372036854775807 ---
459float(9.2233720368548E+18)
460--- testing: 9 - -9.2233720368548E+18 ---
461float(9.2233720368548E+18)
462--- testing: 65 - 9223372036854775807 ---
463int(-9223372036854775742)
464--- testing: 65 - -9223372036854775808 ---
465float(9.2233720368548E+18)
466--- testing: 65 - 2147483647 ---
467int(-2147483582)
468--- testing: 65 - -2147483648 ---
469int(2147483713)
470--- testing: 65 - 9223372034707292160 ---
471int(-9223372034707292095)
472--- testing: 65 - -9223372034707292160 ---
473int(9223372034707292225)
474--- testing: 65 - 2147483648 ---
475int(-2147483583)
476--- testing: 65 - -2147483649 ---
477int(2147483714)
478--- testing: 65 - 4294967294 ---
479int(-4294967229)
480--- testing: 65 - 4294967295 ---
481int(-4294967230)
482--- testing: 65 - 4294967293 ---
483int(-4294967228)
484--- testing: 65 - 9223372036854775806 ---
485int(-9223372036854775741)
486--- testing: 65 - 9.2233720368548E+18 ---
487float(-9.2233720368548E+18)
488--- testing: 65 - -9223372036854775807 ---
489float(9.2233720368548E+18)
490--- testing: 65 - -9.2233720368548E+18 ---
491float(9.2233720368548E+18)
492--- testing: -44 - 9223372036854775807 ---
493float(-9.2233720368548E+18)
494--- testing: -44 - -9223372036854775808 ---
495int(9223372036854775764)
496--- testing: -44 - 2147483647 ---
497int(-2147483691)
498--- testing: -44 - -2147483648 ---
499int(2147483604)
500--- testing: -44 - 9223372034707292160 ---
501int(-9223372034707292204)
502--- testing: -44 - -9223372034707292160 ---
503int(9223372034707292116)
504--- testing: -44 - 2147483648 ---
505int(-2147483692)
506--- testing: -44 - -2147483649 ---
507int(2147483605)
508--- testing: -44 - 4294967294 ---
509int(-4294967338)
510--- testing: -44 - 4294967295 ---
511int(-4294967339)
512--- testing: -44 - 4294967293 ---
513int(-4294967337)
514--- testing: -44 - 9223372036854775806 ---
515float(-9.2233720368548E+18)
516--- testing: -44 - 9.2233720368548E+18 ---
517float(-9.2233720368548E+18)
518--- testing: -44 - -9223372036854775807 ---
519int(9223372036854775763)
520--- testing: -44 - -9.2233720368548E+18 ---
521float(9.2233720368548E+18)
522--- testing: 2147483647 - 9223372036854775807 ---
523int(-9223372034707292160)
524--- testing: 2147483647 - -9223372036854775808 ---
525float(9.2233720390023E+18)
526--- testing: 2147483647 - 2147483647 ---
527int(0)
528--- testing: 2147483647 - -2147483648 ---
529int(4294967295)
530--- testing: 2147483647 - 9223372034707292160 ---
531int(-9223372032559808513)
532--- testing: 2147483647 - -9223372034707292160 ---
533int(9223372036854775807)
534--- testing: 2147483647 - 2147483648 ---
535int(-1)
536--- testing: 2147483647 - -2147483649 ---
537int(4294967296)
538--- testing: 2147483647 - 4294967294 ---
539int(-2147483647)
540--- testing: 2147483647 - 4294967295 ---
541int(-2147483648)
542--- testing: 2147483647 - 4294967293 ---
543int(-2147483646)
544--- testing: 2147483647 - 9223372036854775806 ---
545int(-9223372034707292159)
546--- testing: 2147483647 - 9.2233720368548E+18 ---
547float(-9.2233720347073E+18)
548--- testing: 2147483647 - -9223372036854775807 ---
549float(9.2233720390023E+18)
550--- testing: 2147483647 - -9.2233720368548E+18 ---
551float(9.2233720390023E+18)
552--- testing: 9223372036854775807 - 9223372036854775807 ---
553int(0)
554--- testing: 9223372036854775807 - -9223372036854775808 ---
555float(1.844674407371E+19)
556--- testing: 9223372036854775807 - 2147483647 ---
557int(9223372034707292160)
558--- testing: 9223372036854775807 - -2147483648 ---
559float(9.2233720390023E+18)
560--- testing: 9223372036854775807 - 9223372034707292160 ---
561int(2147483647)
562--- testing: 9223372036854775807 - -9223372034707292160 ---
563float(1.8446744071562E+19)
564--- testing: 9223372036854775807 - 2147483648 ---
565int(9223372034707292159)
566--- testing: 9223372036854775807 - -2147483649 ---
567float(9.2233720390023E+18)
568--- testing: 9223372036854775807 - 4294967294 ---
569int(9223372032559808513)
570--- testing: 9223372036854775807 - 4294967295 ---
571int(9223372032559808512)
572--- testing: 9223372036854775807 - 4294967293 ---
573int(9223372032559808514)
574--- testing: 9223372036854775807 - 9223372036854775806 ---
575int(1)
576--- testing: 9223372036854775807 - 9.2233720368548E+18 ---
577float(0)
578--- testing: 9223372036854775807 - -9223372036854775807 ---
579float(1.844674407371E+19)
580--- testing: 9223372036854775807 - -9.2233720368548E+18 ---
581float(1.844674407371E+19)
582===DONE===
583