1--TEST--
2Test atan2 function : 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, MIN_32Bit, MAX_64Bit, MIN_64Bit);
22
23
24foreach ($longVals as $longVal) {
25   foreach($otherVals as $otherVal) {
26	   echo "--- testing: $longVal, $otherVal ---\n";
27      var_dump(atan2($longVal, $otherVal));
28   }
29}
30
31?>
32===DONE===
33--EXPECT--
34--- testing: 9223372036854775807, 0 ---
35float(1.5707963267949)
36--- testing: 9223372036854775807, 1 ---
37float(1.5707963267949)
38--- testing: 9223372036854775807, -1 ---
39float(1.5707963267949)
40--- testing: 9223372036854775807, 7 ---
41float(1.5707963267949)
42--- testing: 9223372036854775807, 9 ---
43float(1.5707963267949)
44--- testing: 9223372036854775807, 65 ---
45float(1.5707963267949)
46--- testing: 9223372036854775807, -44 ---
47float(1.5707963267949)
48--- testing: 9223372036854775807, 2147483647 ---
49float(1.5707963265621)
50--- testing: 9223372036854775807, -2147483648 ---
51float(1.5707963270277)
52--- testing: 9223372036854775807, 9223372036854775807 ---
53float(0.78539816339745)
54--- testing: 9223372036854775807, -9223372036854775808 ---
55float(2.3561944901923)
56--- testing: -9223372036854775808, 0 ---
57float(-1.5707963267949)
58--- testing: -9223372036854775808, 1 ---
59float(-1.5707963267949)
60--- testing: -9223372036854775808, -1 ---
61float(-1.5707963267949)
62--- testing: -9223372036854775808, 7 ---
63float(-1.5707963267949)
64--- testing: -9223372036854775808, 9 ---
65float(-1.5707963267949)
66--- testing: -9223372036854775808, 65 ---
67float(-1.5707963267949)
68--- testing: -9223372036854775808, -44 ---
69float(-1.5707963267949)
70--- testing: -9223372036854775808, 2147483647 ---
71float(-1.5707963265621)
72--- testing: -9223372036854775808, -2147483648 ---
73float(-1.5707963270277)
74--- testing: -9223372036854775808, 9223372036854775807 ---
75float(-0.78539816339745)
76--- testing: -9223372036854775808, -9223372036854775808 ---
77float(-2.3561944901923)
78--- testing: 2147483647, 0 ---
79float(1.5707963267949)
80--- testing: 2147483647, 1 ---
81float(1.5707963263292)
82--- testing: 2147483647, -1 ---
83float(1.5707963272606)
84--- testing: 2147483647, 7 ---
85float(1.5707963235353)
86--- testing: 2147483647, 9 ---
87float(1.5707963226039)
88--- testing: 2147483647, 65 ---
89float(1.5707962965269)
90--- testing: 2147483647, -44 ---
91float(1.570796347284)
92--- testing: 2147483647, 2147483647 ---
93float(0.78539816339745)
94--- testing: 2147483647, -2147483648 ---
95float(2.3561944904252)
96--- testing: 2147483647, 9223372036854775807 ---
97float(2.3283064354545E-10)
98--- testing: 2147483647, -9223372036854775808 ---
99float(3.141592653357)
100--- testing: -2147483648, 0 ---
101float(-1.5707963267949)
102--- testing: -2147483648, 1 ---
103float(-1.5707963263292)
104--- testing: -2147483648, -1 ---
105float(-1.5707963272606)
106--- testing: -2147483648, 7 ---
107float(-1.5707963235353)
108--- testing: -2147483648, 9 ---
109float(-1.5707963226039)
110--- testing: -2147483648, 65 ---
111float(-1.5707962965269)
112--- testing: -2147483648, -44 ---
113float(-1.570796347284)
114--- testing: -2147483648, 2147483647 ---
115float(-0.78539816363028)
116--- testing: -2147483648, -2147483648 ---
117float(-2.3561944901923)
118--- testing: -2147483648, 9223372036854775807 ---
119float(-2.3283064365387E-10)
120--- testing: -2147483648, -9223372036854775808 ---
121float(-3.141592653357)
122--- testing: 9223372034707292160, 0 ---
123float(1.5707963267949)
124--- testing: 9223372034707292160, 1 ---
125float(1.5707963267949)
126--- testing: 9223372034707292160, -1 ---
127float(1.5707963267949)
128--- testing: 9223372034707292160, 7 ---
129float(1.5707963267949)
130--- testing: 9223372034707292160, 9 ---
131float(1.5707963267949)
132--- testing: 9223372034707292160, 65 ---
133float(1.5707963267949)
134--- testing: 9223372034707292160, -44 ---
135float(1.5707963267949)
136--- testing: 9223372034707292160, 2147483647 ---
137float(1.5707963265621)
138--- testing: 9223372034707292160, -2147483648 ---
139float(1.5707963270277)
140--- testing: 9223372034707292160, 9223372036854775807 ---
141float(0.78539816328103)
142--- testing: 9223372034707292160, -9223372036854775808 ---
143float(2.3561944903088)
144--- testing: -9223372034707292160, 0 ---
145float(-1.5707963267949)
146--- testing: -9223372034707292160, 1 ---
147float(-1.5707963267949)
148--- testing: -9223372034707292160, -1 ---
149float(-1.5707963267949)
150--- testing: -9223372034707292160, 7 ---
151float(-1.5707963267949)
152--- testing: -9223372034707292160, 9 ---
153float(-1.5707963267949)
154--- testing: -9223372034707292160, 65 ---
155float(-1.5707963267949)
156--- testing: -9223372034707292160, -44 ---
157float(-1.5707963267949)
158--- testing: -9223372034707292160, 2147483647 ---
159float(-1.5707963265621)
160--- testing: -9223372034707292160, -2147483648 ---
161float(-1.5707963270277)
162--- testing: -9223372034707292160, 9223372036854775807 ---
163float(-0.78539816328103)
164--- testing: -9223372034707292160, -9223372036854775808 ---
165float(-2.3561944903088)
166--- testing: 2147483648, 0 ---
167float(1.5707963267949)
168--- testing: 2147483648, 1 ---
169float(1.5707963263292)
170--- testing: 2147483648, -1 ---
171float(1.5707963272606)
172--- testing: 2147483648, 7 ---
173float(1.5707963235353)
174--- testing: 2147483648, 9 ---
175float(1.5707963226039)
176--- testing: 2147483648, 65 ---
177float(1.5707962965269)
178--- testing: 2147483648, -44 ---
179float(1.570796347284)
180--- testing: 2147483648, 2147483647 ---
181float(0.78539816363028)
182--- testing: 2147483648, -2147483648 ---
183float(2.3561944901923)
184--- testing: 2147483648, 9223372036854775807 ---
185float(2.3283064365387E-10)
186--- testing: 2147483648, -9223372036854775808 ---
187float(3.141592653357)
188--- testing: -2147483649, 0 ---
189float(-1.5707963267949)
190--- testing: -2147483649, 1 ---
191float(-1.5707963263292)
192--- testing: -2147483649, -1 ---
193float(-1.5707963272606)
194--- testing: -2147483649, 7 ---
195float(-1.5707963235353)
196--- testing: -2147483649, 9 ---
197float(-1.5707963226039)
198--- testing: -2147483649, 65 ---
199float(-1.5707962965269)
200--- testing: -2147483649, -44 ---
201float(-1.570796347284)
202--- testing: -2147483649, 2147483647 ---
203float(-0.78539816386311)
204--- testing: -2147483649, -2147483648 ---
205float(-2.3561944899595)
206--- testing: -2147483649, 9223372036854775807 ---
207float(-2.3283064376229E-10)
208--- testing: -2147483649, -9223372036854775808 ---
209float(-3.141592653357)
210--- testing: 4294967294, 0 ---
211float(1.5707963267949)
212--- testing: 4294967294, 1 ---
213float(1.5707963265621)
214--- testing: 4294967294, -1 ---
215float(1.5707963270277)
216--- testing: 4294967294, 7 ---
217float(1.5707963251651)
218--- testing: 4294967294, 9 ---
219float(1.5707963246994)
220--- testing: 4294967294, 65 ---
221float(1.5707963116609)
222--- testing: 4294967294, -44 ---
223float(1.5707963370394)
224--- testing: 4294967294, 2147483647 ---
225float(1.1071487177941)
226--- testing: 4294967294, -2147483648 ---
227float(2.034443935982)
228--- testing: 4294967294, 9223372036854775807 ---
229float(4.656612870909E-10)
230--- testing: 4294967294, -9223372036854775808 ---
231float(3.1415926531241)
232--- testing: 4294967295, 0 ---
233float(1.5707963267949)
234--- testing: 4294967295, 1 ---
235float(1.5707963265621)
236--- testing: 4294967295, -1 ---
237float(1.5707963270277)
238--- testing: 4294967295, 7 ---
239float(1.5707963251651)
240--- testing: 4294967295, 9 ---
241float(1.5707963246994)
242--- testing: 4294967295, 65 ---
243float(1.5707963116609)
244--- testing: 4294967295, -44 ---
245float(1.5707963370394)
246--- testing: 4294967295, 2147483647 ---
247float(1.1071487178872)
248--- testing: 4294967295, -2147483648 ---
249float(2.0344439358888)
250--- testing: 4294967295, 9223372036854775807 ---
251float(4.6566128719932E-10)
252--- testing: 4294967295, -9223372036854775808 ---
253float(3.1415926531241)
254--- testing: 4294967293, 0 ---
255float(1.5707963267949)
256--- testing: 4294967293, 1 ---
257float(1.5707963265621)
258--- testing: 4294967293, -1 ---
259float(1.5707963270277)
260--- testing: 4294967293, 7 ---
261float(1.5707963251651)
262--- testing: 4294967293, 9 ---
263float(1.5707963246994)
264--- testing: 4294967293, 65 ---
265float(1.5707963116609)
266--- testing: 4294967293, -44 ---
267float(1.5707963370394)
268--- testing: 4294967293, 2147483647 ---
269float(1.107148717701)
270--- testing: 4294967293, -2147483648 ---
271float(2.0344439360751)
272--- testing: 4294967293, 9223372036854775807 ---
273float(4.6566128698248E-10)
274--- testing: 4294967293, -9223372036854775808 ---
275float(3.1415926531241)
276--- testing: 9223372036854775806, 0 ---
277float(1.5707963267949)
278--- testing: 9223372036854775806, 1 ---
279float(1.5707963267949)
280--- testing: 9223372036854775806, -1 ---
281float(1.5707963267949)
282--- testing: 9223372036854775806, 7 ---
283float(1.5707963267949)
284--- testing: 9223372036854775806, 9 ---
285float(1.5707963267949)
286--- testing: 9223372036854775806, 65 ---
287float(1.5707963267949)
288--- testing: 9223372036854775806, -44 ---
289float(1.5707963267949)
290--- testing: 9223372036854775806, 2147483647 ---
291float(1.5707963265621)
292--- testing: 9223372036854775806, -2147483648 ---
293float(1.5707963270277)
294--- testing: 9223372036854775806, 9223372036854775807 ---
295float(0.78539816339745)
296--- testing: 9223372036854775806, -9223372036854775808 ---
297float(2.3561944901923)
298--- testing: 9.2233720368548E+18, 0 ---
299float(1.5707963267949)
300--- testing: 9.2233720368548E+18, 1 ---
301float(1.5707963267949)
302--- testing: 9.2233720368548E+18, -1 ---
303float(1.5707963267949)
304--- testing: 9.2233720368548E+18, 7 ---
305float(1.5707963267949)
306--- testing: 9.2233720368548E+18, 9 ---
307float(1.5707963267949)
308--- testing: 9.2233720368548E+18, 65 ---
309float(1.5707963267949)
310--- testing: 9.2233720368548E+18, -44 ---
311float(1.5707963267949)
312--- testing: 9.2233720368548E+18, 2147483647 ---
313float(1.5707963265621)
314--- testing: 9.2233720368548E+18, -2147483648 ---
315float(1.5707963270277)
316--- testing: 9.2233720368548E+18, 9223372036854775807 ---
317float(0.78539816339745)
318--- testing: 9.2233720368548E+18, -9223372036854775808 ---
319float(2.3561944901923)
320--- testing: -9223372036854775807, 0 ---
321float(-1.5707963267949)
322--- testing: -9223372036854775807, 1 ---
323float(-1.5707963267949)
324--- testing: -9223372036854775807, -1 ---
325float(-1.5707963267949)
326--- testing: -9223372036854775807, 7 ---
327float(-1.5707963267949)
328--- testing: -9223372036854775807, 9 ---
329float(-1.5707963267949)
330--- testing: -9223372036854775807, 65 ---
331float(-1.5707963267949)
332--- testing: -9223372036854775807, -44 ---
333float(-1.5707963267949)
334--- testing: -9223372036854775807, 2147483647 ---
335float(-1.5707963265621)
336--- testing: -9223372036854775807, -2147483648 ---
337float(-1.5707963270277)
338--- testing: -9223372036854775807, 9223372036854775807 ---
339float(-0.78539816339745)
340--- testing: -9223372036854775807, -9223372036854775808 ---
341float(-2.3561944901923)
342--- testing: -9.2233720368548E+18, 0 ---
343float(-1.5707963267949)
344--- testing: -9.2233720368548E+18, 1 ---
345float(-1.5707963267949)
346--- testing: -9.2233720368548E+18, -1 ---
347float(-1.5707963267949)
348--- testing: -9.2233720368548E+18, 7 ---
349float(-1.5707963267949)
350--- testing: -9.2233720368548E+18, 9 ---
351float(-1.5707963267949)
352--- testing: -9.2233720368548E+18, 65 ---
353float(-1.5707963267949)
354--- testing: -9.2233720368548E+18, -44 ---
355float(-1.5707963267949)
356--- testing: -9.2233720368548E+18, 2147483647 ---
357float(-1.5707963265621)
358--- testing: -9.2233720368548E+18, -2147483648 ---
359float(-1.5707963270277)
360--- testing: -9.2233720368548E+18, 9223372036854775807 ---
361float(-0.78539816339745)
362--- testing: -9.2233720368548E+18, -9223372036854775808 ---
363float(-2.3561944901923)
364===DONE===
365