Annotation of embedaddon/php/ext/standard/tests/general_functions/intval.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test intval() function
3: --SKIPIF--
4: <?php
5: if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
6: ?>
7: --FILE--
8: <?php
9: /* Prototype: int intval( mixed $var [.int $base] );
10: * Description: Returns the integer value of var, using the specified base for the conversion(the default is base 10).
11: */
12:
13: echo "*** Testing intval() with valid integer values ***\n";
14: // different valid integer vlaues
15: $valid_ints = array(
16: '0',
17: '1',
18: '-1',
19: '-2147483648', // max negative integer value
20: '-2147483647',
21: 2147483647, // max positive integer value
22: 2147483640,
23: 0x123B, // integer as hexadecimal
24: '0x12ab',
25: '0Xfff',
26: '0XFA',
27: -0x80000000, // max negative integer as hexadecimal
28: '0x7fffffff', // max postive integer as hexadecimal
29: 0x7FFFFFFF, // max postive integer as hexadecimal
30: '0123', // integer as octal
31: 01912, // should be quivalent to octal 1
32: -020000000000, // max negative integer as octal
33: 017777777777, // max positive integer as octal
34: );
35:
36: /* loop to check that intval() recognizes different
37: integer values, expected output:integer value in decimal notation for valid integer */
38:
39: echo "\n***Output with default base value ie 10 ***\n";
40: foreach ($valid_ints as $value ) {
41: var_dump( intval($value) );
42: }
43:
44:
45: echo "\n***Output with base value of 10( explicitly passed as argument) ***\n";
46: foreach ($valid_ints as $value ) {
47: var_dump( intval($value, 10) );
48: }
49:
50:
51: echo "\n***Output with base value of 16 ***\n";
52: foreach ($valid_ints as $value ) {
53: var_dump( intval($value, 16) );
54: }
55:
56: echo "\n***Output with base value of 8 ***\n";
57: foreach ($valid_ints as $value ) {
58: var_dump( intval($value, 8) );
59: }
60:
61: echo "\n*** Testing intval() on non integer types ***\n";
62:
63: // get a resource type variable
64: $fp = fopen (__FILE__, "r");
65: fclose($fp);
66: $dfp = opendir ( dirname(__FILE__) );
67: closedir($dfp);
68:
69: // unset variable
70:
71: $unset_var = 10;
72: unset ($unset_var);
73:
74: // other types in a array
75: $not_int_types = array (
76: /* float values */
77: '-2147483649', // float value
78: '2147483648', // float value
79: '-0x80000001', // float value, beyond max negative int
80: '0x800000001', // float value, beyond max positive int
81: '020000000001', // float value, beyond max positive int
82: '-020000000001', // float value, beyond max negative int
83: 0.0,
84: -0.1,
85: 1.0,
86: 1e5,
87: -1e6,
88: 1E8,
89: -1E9,
90: 10.0000000000000000005,
91: 10.5e+5,
92:
93: /* resources */
94: $fp,
95: $dfp,
96:
97: /* arrays */
98: array(),
99: array(0),
100: array(1),
101: array(NULL),
102: array(null),
103: array("string"),
104: array(true),
105: array(TRUE),
106: array(false),
107: array(FALSE),
108: array(1,2,3,4),
109: array(1 => "One", "two" => 2),
110:
111: /* strings */
112: "",
113: '',
114: "0",
115: '0',
116: "1",
117: '1',
118: "\x01",
119: '\x01',
120: "\01",
121: '\01',
122: 'string',
123: "string",
124: "true",
125: "FALSE",
126: 'false',
127: 'TRUE',
128: "NULL",
129: 'null',
130:
131: /* booleans */
132: true,
133: false,
134: TRUE,
135: FALSE,
136:
137: /* undefined and unset vars */
138: @$unset_var,
139: @$undefined_var
140: );
141:
142:
143: /* loop through the $not_int_types to see working of
144: intval() on non integer types, expected output: integer value in decimal notation for valid integers */
145: foreach ($not_int_types as $type ) {
146: var_dump( intval($type) );
147: }
148:
149: echo "\n*** Testing error conditions ***\n";
150: //Zero argument
151: var_dump( intval() );
152:
153: //arguments more than expected
154: var_dump( intval(TRUE, FALSE, TRUE) );
155:
156: echo "\n--- Done ---\n";
157:
158:
159: ?>
160: --EXPECTF--
161: *** Testing intval() with valid integer values ***
162:
163: ***Output with default base value ie 10 ***
164: int(0)
165: int(1)
166: int(-1)
167: int(-2147483648)
168: int(-2147483647)
169: int(2147483647)
170: int(2147483640)
171: int(4667)
172: int(0)
173: int(0)
174: int(0)
175: int(-2147483648)
176: int(0)
177: int(2147483647)
178: int(123)
179: int(1)
180: int(-2147483648)
181: int(2147483647)
182:
183: ***Output with base value of 10( explicitly passed as argument) ***
184: int(0)
185: int(1)
186: int(-1)
187: int(-2147483648)
188: int(-2147483647)
189: int(2147483647)
190: int(2147483640)
191: int(4667)
192: int(0)
193: int(0)
194: int(0)
195: int(-2147483648)
196: int(0)
197: int(2147483647)
198: int(123)
199: int(1)
200: int(-2147483648)
201: int(2147483647)
202:
203: ***Output with base value of 16 ***
204: int(0)
205: int(1)
206: int(-1)
207: int(-2147483648)
208: int(-2147483648)
209: int(2147483647)
210: int(2147483640)
211: int(4667)
212: int(4779)
213: int(4095)
214: int(250)
215: int(-2147483648)
216: int(2147483647)
217: int(2147483647)
218: int(291)
219: int(1)
220: int(-2147483648)
221: int(2147483647)
222:
223: ***Output with base value of 8 ***
224: int(0)
225: int(1)
226: int(-1)
227: int(-9020)
228: int(-9020)
229: int(2147483647)
230: int(2147483640)
231: int(4667)
232: int(0)
233: int(0)
234: int(0)
235: int(-2147483648)
236: int(0)
237: int(2147483647)
238: int(83)
239: int(1)
240: int(-2147483648)
241: int(2147483647)
242:
243: *** Testing intval() on non integer types ***
244: int(-2147483648)
245: int(2147483647)
246: int(0)
247: int(0)
248: int(2147483647)
249: int(-2147483648)
250: int(0)
251: int(0)
252: int(1)
253: int(100000)
254: int(-1000000)
255: int(100000000)
256: int(-1000000000)
257: int(10)
258: int(1050000)
259: int(%d)
260: int(%d)
261: int(0)
262: int(1)
263: int(1)
264: int(1)
265: int(1)
266: int(1)
267: int(1)
268: int(1)
269: int(1)
270: int(1)
271: int(1)
272: int(1)
273: int(0)
274: int(0)
275: int(0)
276: int(0)
277: int(1)
278: int(1)
279: int(0)
280: int(0)
281: int(0)
282: int(0)
283: int(0)
284: int(0)
285: int(0)
286: int(0)
287: int(0)
288: int(0)
289: int(0)
290: int(0)
291: int(1)
292: int(0)
293: int(1)
294: int(0)
295: int(0)
296: int(0)
297:
298: *** Testing error conditions ***
299:
300: Warning: Wrong parameter count for intval() in %s on line %d
301: NULL
302:
303: Warning: Wrong parameter count for intval() in %s on line %d
304: NULL
305:
306: --- Done ---
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>