1--TEST--
2Test atan2() function : usage variations - different data types as $y arg
3--INI--
4precision = 10
5--FILE--
6<?php
7/* Prototype  : float atan2  ( float $y  , float $x  )
8 * Description: Arc tangent of two variables.
9 * Source code: ext/standard/math.c
10 */
11
12echo "*** Testing atan2() : usage variations ***\n";
13
14//get an unset variable
15$unset_var = 10;
16unset ($unset_var);
17
18// heredoc string
19$heredoc = <<<EOT
20abc
21xyz
22EOT;
23
24// get a class
25class classA
26{
27}
28
29// get a resource variable
30$fp = fopen(__FILE__, "r");
31
32$inputs = array(
33       // int data
34/*1*/  0,
35       1,
36       12,
37       -12,
38       2147483647,
39
40       // float data
41/*6*/  10.5,
42       -10.5,
43       1.234567e2,
44       1.234567E-2,
45       .5,
46
47       // null data
48/*11*/ NULL,
49       null,
50
51       // boolean data
52/*13*/ true,
53       false,
54       TRUE,
55       FALSE,
56
57       // empty data
58/*17*/ "",
59       '',
60       array(),
61
62       // string data
63/*20*/ "abcxyz",
64       'abcxyz',
65       $heredoc,
66
67       // object data
68/*23*/ new classA(),
69
70       // undefined data
71/*24*/ @$undefined_var,
72
73       // unset data
74/*25*/ @$unset_var,
75
76       // resource variable
77/*26*/ $fp
78);
79
80// loop through each element of $inputs to check the behaviour of atan2()
81$iterator = 1;
82foreach($inputs as $input) {
83	echo "\n-- Iteration $iterator --\n";
84	var_dump(atan2($input, 23));
85	$iterator++;
86};
87
88fclose($fp);
89?>
90===Done===
91--EXPECTF--
92*** Testing atan2() : usage variations ***
93
94-- Iteration 1 --
95float(0)
96
97-- Iteration 2 --
98float(0.04345089539)
99
100-- Iteration 3 --
101float(0.4808872802)
102
103-- Iteration 4 --
104float(-0.4808872802)
105
106-- Iteration 5 --
107float(1.570796316)
108
109-- Iteration 6 --
110float(0.4282641529)
111
112-- Iteration 7 --
113float(-0.4282641529)
114
115-- Iteration 8 --
116float(1.386607742)
117
118-- Iteration 9 --
119float(0.0005367682093)
120
121-- Iteration 10 --
122float(0.02173570684)
123
124-- Iteration 11 --
125float(0)
126
127-- Iteration 12 --
128float(0)
129
130-- Iteration 13 --
131float(0.04345089539)
132
133-- Iteration 14 --
134float(0)
135
136-- Iteration 15 --
137float(0.04345089539)
138
139-- Iteration 16 --
140float(0)
141
142-- Iteration 17 --
143
144Warning: atan2() expects parameter 1 to be double, string given in %s on line %d
145NULL
146
147-- Iteration 18 --
148
149Warning: atan2() expects parameter 1 to be double, string given in %s on line %d
150NULL
151
152-- Iteration 19 --
153
154Warning: atan2() expects parameter 1 to be double, array given in %s on line %d
155NULL
156
157-- Iteration 20 --
158
159Warning: atan2() expects parameter 1 to be double, string given in %s on line %d
160NULL
161
162-- Iteration 21 --
163
164Warning: atan2() expects parameter 1 to be double, string given in %s on line %d
165NULL
166
167-- Iteration 22 --
168
169Warning: atan2() expects parameter 1 to be double, string given in %s on line %d
170NULL
171
172-- Iteration 23 --
173
174Warning: atan2() expects parameter 1 to be double, object given in %s on line %d
175NULL
176
177-- Iteration 24 --
178float(0)
179
180-- Iteration 25 --
181float(0)
182
183-- Iteration 26 --
184
185Warning: atan2() expects parameter 1 to be double, resource given in %s on line %d
186NULL
187===Done===