1--TEST-- 2Test - operator : 64bit long tests 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$longVals = array( 16 MAX_64Bit, MIN_64Bit, MAX_32Bit, MIN_32Bit, MAX_64Bit - MAX_32Bit, MIN_64Bit - MIN_32Bit, 17 MAX_32Bit + 1, MIN_32Bit - 1, MAX_32Bit * 2, (MAX_32Bit * 2) + 1, (MAX_32Bit * 2) - 1, 18 MAX_64Bit -1, MAX_64Bit + 1, MIN_64Bit + 1, MIN_64Bit - 1 19); 20 21$otherVals = array(0, 1, -1, 7, 9, 65, -44, MAX_32Bit, MAX_64Bit); 22 23error_reporting(E_ERROR); 24 25foreach ($longVals as $longVal) { 26 foreach($otherVals as $otherVal) { 27 echo "--- testing: $longVal - $otherVal ---\n"; 28 var_dump($longVal-$otherVal); 29 } 30} 31 32foreach ($otherVals as $otherVal) { 33 foreach($longVals as $longVal) { 34 echo "--- testing: $otherVal - $longVal ---\n"; 35 var_dump($otherVal-$longVal); 36 } 37} 38 39?> 40===DONE=== 41--EXPECT-- 42--- testing: 9223372036854775807 - 0 --- 43int(9223372036854775807) 44--- testing: 9223372036854775807 - 1 --- 45int(9223372036854775806) 46--- testing: 9223372036854775807 - -1 --- 47float(9.2233720368548E+18) 48--- testing: 9223372036854775807 - 7 --- 49int(9223372036854775800) 50--- testing: 9223372036854775807 - 9 --- 51int(9223372036854775798) 52--- testing: 9223372036854775807 - 65 --- 53int(9223372036854775742) 54--- testing: 9223372036854775807 - -44 --- 55float(9.2233720368548E+18) 56--- testing: 9223372036854775807 - 2147483647 --- 57int(9223372034707292160) 58--- testing: 9223372036854775807 - 9223372036854775807 --- 59int(0) 60--- testing: -9223372036854775808 - 0 --- 61int(-9223372036854775808) 62--- testing: -9223372036854775808 - 1 --- 63float(-9.2233720368548E+18) 64--- testing: -9223372036854775808 - -1 --- 65int(-9223372036854775807) 66--- testing: -9223372036854775808 - 7 --- 67float(-9.2233720368548E+18) 68--- testing: -9223372036854775808 - 9 --- 69float(-9.2233720368548E+18) 70--- testing: -9223372036854775808 - 65 --- 71float(-9.2233720368548E+18) 72--- testing: -9223372036854775808 - -44 --- 73int(-9223372036854775764) 74--- testing: -9223372036854775808 - 2147483647 --- 75float(-9.2233720390023E+18) 76--- testing: -9223372036854775808 - 9223372036854775807 --- 77float(-1.844674407371E+19) 78--- testing: 2147483647 - 0 --- 79int(2147483647) 80--- testing: 2147483647 - 1 --- 81int(2147483646) 82--- testing: 2147483647 - -1 --- 83int(2147483648) 84--- testing: 2147483647 - 7 --- 85int(2147483640) 86--- testing: 2147483647 - 9 --- 87int(2147483638) 88--- testing: 2147483647 - 65 --- 89int(2147483582) 90--- testing: 2147483647 - -44 --- 91int(2147483691) 92--- testing: 2147483647 - 2147483647 --- 93int(0) 94--- testing: 2147483647 - 9223372036854775807 --- 95int(-9223372034707292160) 96--- testing: -2147483648 - 0 --- 97int(-2147483648) 98--- testing: -2147483648 - 1 --- 99int(-2147483649) 100--- testing: -2147483648 - -1 --- 101int(-2147483647) 102--- testing: -2147483648 - 7 --- 103int(-2147483655) 104--- testing: -2147483648 - 9 --- 105int(-2147483657) 106--- testing: -2147483648 - 65 --- 107int(-2147483713) 108--- testing: -2147483648 - -44 --- 109int(-2147483604) 110--- testing: -2147483648 - 2147483647 --- 111int(-4294967295) 112--- testing: -2147483648 - 9223372036854775807 --- 113float(-9.2233720390023E+18) 114--- testing: 9223372034707292160 - 0 --- 115int(9223372034707292160) 116--- testing: 9223372034707292160 - 1 --- 117int(9223372034707292159) 118--- testing: 9223372034707292160 - -1 --- 119int(9223372034707292161) 120--- testing: 9223372034707292160 - 7 --- 121int(9223372034707292153) 122--- testing: 9223372034707292160 - 9 --- 123int(9223372034707292151) 124--- testing: 9223372034707292160 - 65 --- 125int(9223372034707292095) 126--- testing: 9223372034707292160 - -44 --- 127int(9223372034707292204) 128--- testing: 9223372034707292160 - 2147483647 --- 129int(9223372032559808513) 130--- testing: 9223372034707292160 - 9223372036854775807 --- 131int(-2147483647) 132--- testing: -9223372034707292160 - 0 --- 133int(-9223372034707292160) 134--- testing: -9223372034707292160 - 1 --- 135int(-9223372034707292161) 136--- testing: -9223372034707292160 - -1 --- 137int(-9223372034707292159) 138--- testing: -9223372034707292160 - 7 --- 139int(-9223372034707292167) 140--- testing: -9223372034707292160 - 9 --- 141int(-9223372034707292169) 142--- testing: -9223372034707292160 - 65 --- 143int(-9223372034707292225) 144--- testing: -9223372034707292160 - -44 --- 145int(-9223372034707292116) 146--- testing: -9223372034707292160 - 2147483647 --- 147int(-9223372036854775807) 148--- testing: -9223372034707292160 - 9223372036854775807 --- 149float(-1.8446744071562E+19) 150--- testing: 2147483648 - 0 --- 151int(2147483648) 152--- testing: 2147483648 - 1 --- 153int(2147483647) 154--- testing: 2147483648 - -1 --- 155int(2147483649) 156--- testing: 2147483648 - 7 --- 157int(2147483641) 158--- testing: 2147483648 - 9 --- 159int(2147483639) 160--- testing: 2147483648 - 65 --- 161int(2147483583) 162--- testing: 2147483648 - -44 --- 163int(2147483692) 164--- testing: 2147483648 - 2147483647 --- 165int(1) 166--- testing: 2147483648 - 9223372036854775807 --- 167int(-9223372034707292159) 168--- testing: -2147483649 - 0 --- 169int(-2147483649) 170--- testing: -2147483649 - 1 --- 171int(-2147483650) 172--- testing: -2147483649 - -1 --- 173int(-2147483648) 174--- testing: -2147483649 - 7 --- 175int(-2147483656) 176--- testing: -2147483649 - 9 --- 177int(-2147483658) 178--- testing: -2147483649 - 65 --- 179int(-2147483714) 180--- testing: -2147483649 - -44 --- 181int(-2147483605) 182--- testing: -2147483649 - 2147483647 --- 183int(-4294967296) 184--- testing: -2147483649 - 9223372036854775807 --- 185float(-9.2233720390023E+18) 186--- testing: 4294967294 - 0 --- 187int(4294967294) 188--- testing: 4294967294 - 1 --- 189int(4294967293) 190--- testing: 4294967294 - -1 --- 191int(4294967295) 192--- testing: 4294967294 - 7 --- 193int(4294967287) 194--- testing: 4294967294 - 9 --- 195int(4294967285) 196--- testing: 4294967294 - 65 --- 197int(4294967229) 198--- testing: 4294967294 - -44 --- 199int(4294967338) 200--- testing: 4294967294 - 2147483647 --- 201int(2147483647) 202--- testing: 4294967294 - 9223372036854775807 --- 203int(-9223372032559808513) 204--- testing: 4294967295 - 0 --- 205int(4294967295) 206--- testing: 4294967295 - 1 --- 207int(4294967294) 208--- testing: 4294967295 - -1 --- 209int(4294967296) 210--- testing: 4294967295 - 7 --- 211int(4294967288) 212--- testing: 4294967295 - 9 --- 213int(4294967286) 214--- testing: 4294967295 - 65 --- 215int(4294967230) 216--- testing: 4294967295 - -44 --- 217int(4294967339) 218--- testing: 4294967295 - 2147483647 --- 219int(2147483648) 220--- testing: 4294967295 - 9223372036854775807 --- 221int(-9223372032559808512) 222--- testing: 4294967293 - 0 --- 223int(4294967293) 224--- testing: 4294967293 - 1 --- 225int(4294967292) 226--- testing: 4294967293 - -1 --- 227int(4294967294) 228--- testing: 4294967293 - 7 --- 229int(4294967286) 230--- testing: 4294967293 - 9 --- 231int(4294967284) 232--- testing: 4294967293 - 65 --- 233int(4294967228) 234--- testing: 4294967293 - -44 --- 235int(4294967337) 236--- testing: 4294967293 - 2147483647 --- 237int(2147483646) 238--- testing: 4294967293 - 9223372036854775807 --- 239int(-9223372032559808514) 240--- testing: 9223372036854775806 - 0 --- 241int(9223372036854775806) 242--- testing: 9223372036854775806 - 1 --- 243int(9223372036854775805) 244--- testing: 9223372036854775806 - -1 --- 245int(9223372036854775807) 246--- testing: 9223372036854775806 - 7 --- 247int(9223372036854775799) 248--- testing: 9223372036854775806 - 9 --- 249int(9223372036854775797) 250--- testing: 9223372036854775806 - 65 --- 251int(9223372036854775741) 252--- testing: 9223372036854775806 - -44 --- 253float(9.2233720368548E+18) 254--- testing: 9223372036854775806 - 2147483647 --- 255int(9223372034707292159) 256--- testing: 9223372036854775806 - 9223372036854775807 --- 257int(-1) 258--- testing: 9.2233720368548E+18 - 0 --- 259float(9.2233720368548E+18) 260--- testing: 9.2233720368548E+18 - 1 --- 261float(9.2233720368548E+18) 262--- testing: 9.2233720368548E+18 - -1 --- 263float(9.2233720368548E+18) 264--- testing: 9.2233720368548E+18 - 7 --- 265float(9.2233720368548E+18) 266--- testing: 9.2233720368548E+18 - 9 --- 267float(9.2233720368548E+18) 268--- testing: 9.2233720368548E+18 - 65 --- 269float(9.2233720368548E+18) 270--- testing: 9.2233720368548E+18 - -44 --- 271float(9.2233720368548E+18) 272--- testing: 9.2233720368548E+18 - 2147483647 --- 273float(9.2233720347073E+18) 274--- testing: 9.2233720368548E+18 - 9223372036854775807 --- 275float(0) 276--- testing: -9223372036854775807 - 0 --- 277int(-9223372036854775807) 278--- testing: -9223372036854775807 - 1 --- 279int(-9223372036854775808) 280--- testing: -9223372036854775807 - -1 --- 281int(-9223372036854775806) 282--- testing: -9223372036854775807 - 7 --- 283float(-9.2233720368548E+18) 284--- testing: -9223372036854775807 - 9 --- 285float(-9.2233720368548E+18) 286--- testing: -9223372036854775807 - 65 --- 287float(-9.2233720368548E+18) 288--- testing: -9223372036854775807 - -44 --- 289int(-9223372036854775763) 290--- testing: -9223372036854775807 - 2147483647 --- 291float(-9.2233720390023E+18) 292--- testing: -9223372036854775807 - 9223372036854775807 --- 293float(-1.844674407371E+19) 294--- testing: -9.2233720368548E+18 - 0 --- 295float(-9.2233720368548E+18) 296--- testing: -9.2233720368548E+18 - 1 --- 297float(-9.2233720368548E+18) 298--- testing: -9.2233720368548E+18 - -1 --- 299float(-9.2233720368548E+18) 300--- testing: -9.2233720368548E+18 - 7 --- 301float(-9.2233720368548E+18) 302--- testing: -9.2233720368548E+18 - 9 --- 303float(-9.2233720368548E+18) 304--- testing: -9.2233720368548E+18 - 65 --- 305float(-9.2233720368548E+18) 306--- testing: -9.2233720368548E+18 - -44 --- 307float(-9.2233720368548E+18) 308--- testing: -9.2233720368548E+18 - 2147483647 --- 309float(-9.2233720390023E+18) 310--- testing: -9.2233720368548E+18 - 9223372036854775807 --- 311float(-1.844674407371E+19) 312--- testing: 0 - 9223372036854775807 --- 313int(-9223372036854775807) 314--- testing: 0 - -9223372036854775808 --- 315float(9.2233720368548E+18) 316--- testing: 0 - 2147483647 --- 317int(-2147483647) 318--- testing: 0 - -2147483648 --- 319int(2147483648) 320--- testing: 0 - 9223372034707292160 --- 321int(-9223372034707292160) 322--- testing: 0 - -9223372034707292160 --- 323int(9223372034707292160) 324--- testing: 0 - 2147483648 --- 325int(-2147483648) 326--- testing: 0 - -2147483649 --- 327int(2147483649) 328--- testing: 0 - 4294967294 --- 329int(-4294967294) 330--- testing: 0 - 4294967295 --- 331int(-4294967295) 332--- testing: 0 - 4294967293 --- 333int(-4294967293) 334--- testing: 0 - 9223372036854775806 --- 335int(-9223372036854775806) 336--- testing: 0 - 9.2233720368548E+18 --- 337float(-9.2233720368548E+18) 338--- testing: 0 - -9223372036854775807 --- 339int(9223372036854775807) 340--- testing: 0 - -9.2233720368548E+18 --- 341float(9.2233720368548E+18) 342--- testing: 1 - 9223372036854775807 --- 343int(-9223372036854775806) 344--- testing: 1 - -9223372036854775808 --- 345float(9.2233720368548E+18) 346--- testing: 1 - 2147483647 --- 347int(-2147483646) 348--- testing: 1 - -2147483648 --- 349int(2147483649) 350--- testing: 1 - 9223372034707292160 --- 351int(-9223372034707292159) 352--- testing: 1 - -9223372034707292160 --- 353int(9223372034707292161) 354--- testing: 1 - 2147483648 --- 355int(-2147483647) 356--- testing: 1 - -2147483649 --- 357int(2147483650) 358--- testing: 1 - 4294967294 --- 359int(-4294967293) 360--- testing: 1 - 4294967295 --- 361int(-4294967294) 362--- testing: 1 - 4294967293 --- 363int(-4294967292) 364--- testing: 1 - 9223372036854775806 --- 365int(-9223372036854775805) 366--- testing: 1 - 9.2233720368548E+18 --- 367float(-9.2233720368548E+18) 368--- testing: 1 - -9223372036854775807 --- 369float(9.2233720368548E+18) 370--- testing: 1 - -9.2233720368548E+18 --- 371float(9.2233720368548E+18) 372--- testing: -1 - 9223372036854775807 --- 373int(-9223372036854775808) 374--- testing: -1 - -9223372036854775808 --- 375int(9223372036854775807) 376--- testing: -1 - 2147483647 --- 377int(-2147483648) 378--- testing: -1 - -2147483648 --- 379int(2147483647) 380--- testing: -1 - 9223372034707292160 --- 381int(-9223372034707292161) 382--- testing: -1 - -9223372034707292160 --- 383int(9223372034707292159) 384--- testing: -1 - 2147483648 --- 385int(-2147483649) 386--- testing: -1 - -2147483649 --- 387int(2147483648) 388--- testing: -1 - 4294967294 --- 389int(-4294967295) 390--- testing: -1 - 4294967295 --- 391int(-4294967296) 392--- testing: -1 - 4294967293 --- 393int(-4294967294) 394--- testing: -1 - 9223372036854775806 --- 395int(-9223372036854775807) 396--- testing: -1 - 9.2233720368548E+18 --- 397float(-9.2233720368548E+18) 398--- testing: -1 - -9223372036854775807 --- 399int(9223372036854775806) 400--- testing: -1 - -9.2233720368548E+18 --- 401float(9.2233720368548E+18) 402--- testing: 7 - 9223372036854775807 --- 403int(-9223372036854775800) 404--- testing: 7 - -9223372036854775808 --- 405float(9.2233720368548E+18) 406--- testing: 7 - 2147483647 --- 407int(-2147483640) 408--- testing: 7 - -2147483648 --- 409int(2147483655) 410--- testing: 7 - 9223372034707292160 --- 411int(-9223372034707292153) 412--- testing: 7 - -9223372034707292160 --- 413int(9223372034707292167) 414--- testing: 7 - 2147483648 --- 415int(-2147483641) 416--- testing: 7 - -2147483649 --- 417int(2147483656) 418--- testing: 7 - 4294967294 --- 419int(-4294967287) 420--- testing: 7 - 4294967295 --- 421int(-4294967288) 422--- testing: 7 - 4294967293 --- 423int(-4294967286) 424--- testing: 7 - 9223372036854775806 --- 425int(-9223372036854775799) 426--- testing: 7 - 9.2233720368548E+18 --- 427float(-9.2233720368548E+18) 428--- testing: 7 - -9223372036854775807 --- 429float(9.2233720368548E+18) 430--- testing: 7 - -9.2233720368548E+18 --- 431float(9.2233720368548E+18) 432--- testing: 9 - 9223372036854775807 --- 433int(-9223372036854775798) 434--- testing: 9 - -9223372036854775808 --- 435float(9.2233720368548E+18) 436--- testing: 9 - 2147483647 --- 437int(-2147483638) 438--- testing: 9 - -2147483648 --- 439int(2147483657) 440--- testing: 9 - 9223372034707292160 --- 441int(-9223372034707292151) 442--- testing: 9 - -9223372034707292160 --- 443int(9223372034707292169) 444--- testing: 9 - 2147483648 --- 445int(-2147483639) 446--- testing: 9 - -2147483649 --- 447int(2147483658) 448--- testing: 9 - 4294967294 --- 449int(-4294967285) 450--- testing: 9 - 4294967295 --- 451int(-4294967286) 452--- testing: 9 - 4294967293 --- 453int(-4294967284) 454--- testing: 9 - 9223372036854775806 --- 455int(-9223372036854775797) 456--- testing: 9 - 9.2233720368548E+18 --- 457float(-9.2233720368548E+18) 458--- testing: 9 - -9223372036854775807 --- 459float(9.2233720368548E+18) 460--- testing: 9 - -9.2233720368548E+18 --- 461float(9.2233720368548E+18) 462--- testing: 65 - 9223372036854775807 --- 463int(-9223372036854775742) 464--- testing: 65 - -9223372036854775808 --- 465float(9.2233720368548E+18) 466--- testing: 65 - 2147483647 --- 467int(-2147483582) 468--- testing: 65 - -2147483648 --- 469int(2147483713) 470--- testing: 65 - 9223372034707292160 --- 471int(-9223372034707292095) 472--- testing: 65 - -9223372034707292160 --- 473int(9223372034707292225) 474--- testing: 65 - 2147483648 --- 475int(-2147483583) 476--- testing: 65 - -2147483649 --- 477int(2147483714) 478--- testing: 65 - 4294967294 --- 479int(-4294967229) 480--- testing: 65 - 4294967295 --- 481int(-4294967230) 482--- testing: 65 - 4294967293 --- 483int(-4294967228) 484--- testing: 65 - 9223372036854775806 --- 485int(-9223372036854775741) 486--- testing: 65 - 9.2233720368548E+18 --- 487float(-9.2233720368548E+18) 488--- testing: 65 - -9223372036854775807 --- 489float(9.2233720368548E+18) 490--- testing: 65 - -9.2233720368548E+18 --- 491float(9.2233720368548E+18) 492--- testing: -44 - 9223372036854775807 --- 493float(-9.2233720368548E+18) 494--- testing: -44 - -9223372036854775808 --- 495int(9223372036854775764) 496--- testing: -44 - 2147483647 --- 497int(-2147483691) 498--- testing: -44 - -2147483648 --- 499int(2147483604) 500--- testing: -44 - 9223372034707292160 --- 501int(-9223372034707292204) 502--- testing: -44 - -9223372034707292160 --- 503int(9223372034707292116) 504--- testing: -44 - 2147483648 --- 505int(-2147483692) 506--- testing: -44 - -2147483649 --- 507int(2147483605) 508--- testing: -44 - 4294967294 --- 509int(-4294967338) 510--- testing: -44 - 4294967295 --- 511int(-4294967339) 512--- testing: -44 - 4294967293 --- 513int(-4294967337) 514--- testing: -44 - 9223372036854775806 --- 515float(-9.2233720368548E+18) 516--- testing: -44 - 9.2233720368548E+18 --- 517float(-9.2233720368548E+18) 518--- testing: -44 - -9223372036854775807 --- 519int(9223372036854775763) 520--- testing: -44 - -9.2233720368548E+18 --- 521float(9.2233720368548E+18) 522--- testing: 2147483647 - 9223372036854775807 --- 523int(-9223372034707292160) 524--- testing: 2147483647 - -9223372036854775808 --- 525float(9.2233720390023E+18) 526--- testing: 2147483647 - 2147483647 --- 527int(0) 528--- testing: 2147483647 - -2147483648 --- 529int(4294967295) 530--- testing: 2147483647 - 9223372034707292160 --- 531int(-9223372032559808513) 532--- testing: 2147483647 - -9223372034707292160 --- 533int(9223372036854775807) 534--- testing: 2147483647 - 2147483648 --- 535int(-1) 536--- testing: 2147483647 - -2147483649 --- 537int(4294967296) 538--- testing: 2147483647 - 4294967294 --- 539int(-2147483647) 540--- testing: 2147483647 - 4294967295 --- 541int(-2147483648) 542--- testing: 2147483647 - 4294967293 --- 543int(-2147483646) 544--- testing: 2147483647 - 9223372036854775806 --- 545int(-9223372034707292159) 546--- testing: 2147483647 - 9.2233720368548E+18 --- 547float(-9.2233720347073E+18) 548--- testing: 2147483647 - -9223372036854775807 --- 549float(9.2233720390023E+18) 550--- testing: 2147483647 - -9.2233720368548E+18 --- 551float(9.2233720390023E+18) 552--- testing: 9223372036854775807 - 9223372036854775807 --- 553int(0) 554--- testing: 9223372036854775807 - -9223372036854775808 --- 555float(1.844674407371E+19) 556--- testing: 9223372036854775807 - 2147483647 --- 557int(9223372034707292160) 558--- testing: 9223372036854775807 - -2147483648 --- 559float(9.2233720390023E+18) 560--- testing: 9223372036854775807 - 9223372034707292160 --- 561int(2147483647) 562--- testing: 9223372036854775807 - -9223372034707292160 --- 563float(1.8446744071562E+19) 564--- testing: 9223372036854775807 - 2147483648 --- 565int(9223372034707292159) 566--- testing: 9223372036854775807 - -2147483649 --- 567float(9.2233720390023E+18) 568--- testing: 9223372036854775807 - 4294967294 --- 569int(9223372032559808513) 570--- testing: 9223372036854775807 - 4294967295 --- 571int(9223372032559808512) 572--- testing: 9223372036854775807 - 4294967293 --- 573int(9223372032559808514) 574--- testing: 9223372036854775807 - 9223372036854775806 --- 575int(1) 576--- testing: 9223372036854775807 - 9.2233720368548E+18 --- 577float(0) 578--- testing: 9223372036854775807 - -9223372036854775807 --- 579float(1.844674407371E+19) 580--- testing: 9223372036854775807 - -9.2233720368548E+18 --- 581float(1.844674407371E+19) 582===DONE=== 583