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