Basic flow analysis on if statements
[hiphop-php.git] / hphp / test / slow / ext_array / range.php
blob12a9f90ad37df88f53afa1595875c81cdfc99c2b
1 <?hh
4 <<__EntryPoint>>
5 function main_range() {
6 $ret = range(0, 12);
7 var_dump(count($ret));
8 var_dump($ret[0]);
9 var_dump($ret[12]);
11 // The step parameter was introduced in 5.0.0
12 $ret = range(0, 100, 10);
13 var_dump(count($ret));
14 var_dump($ret[0]);
15 var_dump($ret[5]);
16 var_dump($ret[10]);
18 // Use of character sequences introduced in 4.1.0
19 // array("a", "b", "c", "d", "e", "f", "g", "h", "i");
20 $ret = range("a", "i");
21 var_dump(count($ret));
22 var_dump($ret[0]);
23 var_dump($ret[4]);
24 var_dump($ret[8]);
26 var_dump(range("c", "a"));
28 var_dump(range(1.0, 3.0));
29 var_dump(range(3.0, 1.0));
31 // test large range boundaries. Old versions of php and HHVM internally
32 // converted range boundaries to floating point numbers, which could couse
33 // precision loss.
34 var_dump(range(-9223372036854775298, -9223372036854775294));
35 var_dump(range('-9223372036854775298', '-9223372036854775294'));
36 var_dump(range(1<<55, (1<<55) + 20, 10));
38 // verify, floating point boundaries do not need to infinite loop
39 $ret = range(-9223372036854775298.0, -9223372036854775294.0);
40 var_dump(gettype($ret));
41 var_dump(count($ret) >= 1024);
42 $ret = range('-9223372036854775298.0', '-9223372036854775294.0');
43 var_dump(gettype($ret));
44 var_dump(count($ret) >= 1024);