1--TEST--
2Test > operator : max int 64bit range
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$validGreaterThan = array (
16MAX_32Bit, array(MAX_32Bit - 1, "2147483646", "2147483646.999", 2.147483646e9, 2147483646.9, MIN_32Bit),
17-2147483647, array(MIN_32Bit, "-2147483648", "-2147483647.001", -2.1474836471e9, -2147483647.9),
18);
19
20$invalidGreaterThan = array (
21MAX_32Bit, array(2e33, MAX_32Bit + 1),
22MIN_32Bit, array(MIN_32Bit + 1, MAX_32Bit)
23);
24
25
26
27$failed = false;
28// test valid values
29for ($i = 0; $i < count($validGreaterThan); $i +=2) {
30   $typeToTestVal = $validGreaterThan[$i];
31   $compares = $validGreaterThan[$i + 1];
32   foreach($compares as $compareVal) {
33      if ($typeToTestVal > $compareVal) {
34         // do nothing
35      }
36      else {
37         echo "FAILED: '$typeToTestVal' <= '$compareVal'\n";
38         $failed = true;
39      }
40   }
41}
42// test for invalid values
43for ($i = 0; $i < count($invalidGreaterThan); $i +=2) {
44   $typeToTestVal = $invalidGreaterThan[$i];
45   $compares = $invalidGreaterThan[$i + 1];
46   foreach($compares as $compareVal) {
47      if ($typeToTestVal > $compareVal) {
48         echo "FAILED: '$typeToTestVal' > '$compareVal'\n";
49         $failed = true;
50      }
51   }
52}
53
54if ($failed == false) {
55   echo "Test Passed\n";
56}
57
58?>
59===DONE===
60--EXPECT--
61Test Passed
62===DONE===