1--TEST-- 2Test fmod function : 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, MIN_32Bit, MAX_64Bit, MIN_64Bit); 22 23 24foreach ($longVals as $longVal) { 25 foreach($otherVals as $otherVal) { 26 echo "--- testing: $longVal, $otherVal ---\n"; 27 var_dump(fmod($longVal, $otherVal)); 28 } 29} 30 31?> 32===DONE=== 33--EXPECT-- 34--- testing: 9223372036854775807, 0 --- 35float(NAN) 36--- testing: 9223372036854775807, 1 --- 37float(0) 38--- testing: 9223372036854775807, -1 --- 39float(0) 40--- testing: 9223372036854775807, 7 --- 41float(1) 42--- testing: 9223372036854775807, 9 --- 43float(8) 44--- testing: 9223372036854775807, 65 --- 45float(8) 46--- testing: 9223372036854775807, -44 --- 47float(8) 48--- testing: 9223372036854775807, 2147483647 --- 49float(2) 50--- testing: 9223372036854775807, -2147483648 --- 51float(0) 52--- testing: 9223372036854775807, 9223372036854775807 --- 53float(0) 54--- testing: 9223372036854775807, -9223372036854775808 --- 55float(0) 56--- testing: -9223372036854775808, 0 --- 57float(NAN) 58--- testing: -9223372036854775808, 1 --- 59float(-0) 60--- testing: -9223372036854775808, -1 --- 61float(-0) 62--- testing: -9223372036854775808, 7 --- 63float(-1) 64--- testing: -9223372036854775808, 9 --- 65float(-8) 66--- testing: -9223372036854775808, 65 --- 67float(-8) 68--- testing: -9223372036854775808, -44 --- 69float(-8) 70--- testing: -9223372036854775808, 2147483647 --- 71float(-2) 72--- testing: -9223372036854775808, -2147483648 --- 73float(-0) 74--- testing: -9223372036854775808, 9223372036854775807 --- 75float(-0) 76--- testing: -9223372036854775808, -9223372036854775808 --- 77float(-0) 78--- testing: 2147483647, 0 --- 79float(NAN) 80--- testing: 2147483647, 1 --- 81float(0) 82--- testing: 2147483647, -1 --- 83float(0) 84--- testing: 2147483647, 7 --- 85float(1) 86--- testing: 2147483647, 9 --- 87float(1) 88--- testing: 2147483647, 65 --- 89float(62) 90--- testing: 2147483647, -44 --- 91float(23) 92--- testing: 2147483647, 2147483647 --- 93float(0) 94--- testing: 2147483647, -2147483648 --- 95float(2147483647) 96--- testing: 2147483647, 9223372036854775807 --- 97float(2147483647) 98--- testing: 2147483647, -9223372036854775808 --- 99float(2147483647) 100--- testing: -2147483648, 0 --- 101float(NAN) 102--- testing: -2147483648, 1 --- 103float(-0) 104--- testing: -2147483648, -1 --- 105float(-0) 106--- testing: -2147483648, 7 --- 107float(-2) 108--- testing: -2147483648, 9 --- 109float(-2) 110--- testing: -2147483648, 65 --- 111float(-63) 112--- testing: -2147483648, -44 --- 113float(-24) 114--- testing: -2147483648, 2147483647 --- 115float(-1) 116--- testing: -2147483648, -2147483648 --- 117float(-0) 118--- testing: -2147483648, 9223372036854775807 --- 119float(-2147483648) 120--- testing: -2147483648, -9223372036854775808 --- 121float(-2147483648) 122--- testing: 9223372034707292160, 0 --- 123float(NAN) 124--- testing: 9223372034707292160, 1 --- 125float(0) 126--- testing: 9223372034707292160, -1 --- 127float(0) 128--- testing: 9223372034707292160, 7 --- 129float(6) 130--- testing: 9223372034707292160, 9 --- 131float(6) 132--- testing: 9223372034707292160, 65 --- 133float(10) 134--- testing: 9223372034707292160, -44 --- 135float(28) 136--- testing: 9223372034707292160, 2147483647 --- 137float(1) 138--- testing: 9223372034707292160, -2147483648 --- 139float(0) 140--- testing: 9223372034707292160, 9223372036854775807 --- 141float(9.2233720347073E+18) 142--- testing: 9223372034707292160, -9223372036854775808 --- 143float(9.2233720347073E+18) 144--- testing: -9223372034707292160, 0 --- 145float(NAN) 146--- testing: -9223372034707292160, 1 --- 147float(-0) 148--- testing: -9223372034707292160, -1 --- 149float(-0) 150--- testing: -9223372034707292160, 7 --- 151float(-6) 152--- testing: -9223372034707292160, 9 --- 153float(-6) 154--- testing: -9223372034707292160, 65 --- 155float(-10) 156--- testing: -9223372034707292160, -44 --- 157float(-28) 158--- testing: -9223372034707292160, 2147483647 --- 159float(-1) 160--- testing: -9223372034707292160, -2147483648 --- 161float(-0) 162--- testing: -9223372034707292160, 9223372036854775807 --- 163float(-9.2233720347073E+18) 164--- testing: -9223372034707292160, -9223372036854775808 --- 165float(-9.2233720347073E+18) 166--- testing: 2147483648, 0 --- 167float(NAN) 168--- testing: 2147483648, 1 --- 169float(0) 170--- testing: 2147483648, -1 --- 171float(0) 172--- testing: 2147483648, 7 --- 173float(2) 174--- testing: 2147483648, 9 --- 175float(2) 176--- testing: 2147483648, 65 --- 177float(63) 178--- testing: 2147483648, -44 --- 179float(24) 180--- testing: 2147483648, 2147483647 --- 181float(1) 182--- testing: 2147483648, -2147483648 --- 183float(0) 184--- testing: 2147483648, 9223372036854775807 --- 185float(2147483648) 186--- testing: 2147483648, -9223372036854775808 --- 187float(2147483648) 188--- testing: -2147483649, 0 --- 189float(NAN) 190--- testing: -2147483649, 1 --- 191float(-0) 192--- testing: -2147483649, -1 --- 193float(-0) 194--- testing: -2147483649, 7 --- 195float(-3) 196--- testing: -2147483649, 9 --- 197float(-3) 198--- testing: -2147483649, 65 --- 199float(-64) 200--- testing: -2147483649, -44 --- 201float(-25) 202--- testing: -2147483649, 2147483647 --- 203float(-2) 204--- testing: -2147483649, -2147483648 --- 205float(-1) 206--- testing: -2147483649, 9223372036854775807 --- 207float(-2147483649) 208--- testing: -2147483649, -9223372036854775808 --- 209float(-2147483649) 210--- testing: 4294967294, 0 --- 211float(NAN) 212--- testing: 4294967294, 1 --- 213float(0) 214--- testing: 4294967294, -1 --- 215float(0) 216--- testing: 4294967294, 7 --- 217float(2) 218--- testing: 4294967294, 9 --- 219float(2) 220--- testing: 4294967294, 65 --- 221float(59) 222--- testing: 4294967294, -44 --- 223float(2) 224--- testing: 4294967294, 2147483647 --- 225float(0) 226--- testing: 4294967294, -2147483648 --- 227float(2147483646) 228--- testing: 4294967294, 9223372036854775807 --- 229float(4294967294) 230--- testing: 4294967294, -9223372036854775808 --- 231float(4294967294) 232--- testing: 4294967295, 0 --- 233float(NAN) 234--- testing: 4294967295, 1 --- 235float(0) 236--- testing: 4294967295, -1 --- 237float(0) 238--- testing: 4294967295, 7 --- 239float(3) 240--- testing: 4294967295, 9 --- 241float(3) 242--- testing: 4294967295, 65 --- 243float(60) 244--- testing: 4294967295, -44 --- 245float(3) 246--- testing: 4294967295, 2147483647 --- 247float(1) 248--- testing: 4294967295, -2147483648 --- 249float(2147483647) 250--- testing: 4294967295, 9223372036854775807 --- 251float(4294967295) 252--- testing: 4294967295, -9223372036854775808 --- 253float(4294967295) 254--- testing: 4294967293, 0 --- 255float(NAN) 256--- testing: 4294967293, 1 --- 257float(0) 258--- testing: 4294967293, -1 --- 259float(0) 260--- testing: 4294967293, 7 --- 261float(1) 262--- testing: 4294967293, 9 --- 263float(1) 264--- testing: 4294967293, 65 --- 265float(58) 266--- testing: 4294967293, -44 --- 267float(1) 268--- testing: 4294967293, 2147483647 --- 269float(2147483646) 270--- testing: 4294967293, -2147483648 --- 271float(2147483645) 272--- testing: 4294967293, 9223372036854775807 --- 273float(4294967293) 274--- testing: 4294967293, -9223372036854775808 --- 275float(4294967293) 276--- testing: 9223372036854775806, 0 --- 277float(NAN) 278--- testing: 9223372036854775806, 1 --- 279float(0) 280--- testing: 9223372036854775806, -1 --- 281float(0) 282--- testing: 9223372036854775806, 7 --- 283float(1) 284--- testing: 9223372036854775806, 9 --- 285float(8) 286--- testing: 9223372036854775806, 65 --- 287float(8) 288--- testing: 9223372036854775806, -44 --- 289float(8) 290--- testing: 9223372036854775806, 2147483647 --- 291float(2) 292--- testing: 9223372036854775806, -2147483648 --- 293float(0) 294--- testing: 9223372036854775806, 9223372036854775807 --- 295float(0) 296--- testing: 9223372036854775806, -9223372036854775808 --- 297float(0) 298--- testing: 9.2233720368548E+18, 0 --- 299float(NAN) 300--- testing: 9.2233720368548E+18, 1 --- 301float(0) 302--- testing: 9.2233720368548E+18, -1 --- 303float(0) 304--- testing: 9.2233720368548E+18, 7 --- 305float(1) 306--- testing: 9.2233720368548E+18, 9 --- 307float(8) 308--- testing: 9.2233720368548E+18, 65 --- 309float(8) 310--- testing: 9.2233720368548E+18, -44 --- 311float(8) 312--- testing: 9.2233720368548E+18, 2147483647 --- 313float(2) 314--- testing: 9.2233720368548E+18, -2147483648 --- 315float(0) 316--- testing: 9.2233720368548E+18, 9223372036854775807 --- 317float(0) 318--- testing: 9.2233720368548E+18, -9223372036854775808 --- 319float(0) 320--- testing: -9223372036854775807, 0 --- 321float(NAN) 322--- testing: -9223372036854775807, 1 --- 323float(-0) 324--- testing: -9223372036854775807, -1 --- 325float(-0) 326--- testing: -9223372036854775807, 7 --- 327float(-1) 328--- testing: -9223372036854775807, 9 --- 329float(-8) 330--- testing: -9223372036854775807, 65 --- 331float(-8) 332--- testing: -9223372036854775807, -44 --- 333float(-8) 334--- testing: -9223372036854775807, 2147483647 --- 335float(-2) 336--- testing: -9223372036854775807, -2147483648 --- 337float(-0) 338--- testing: -9223372036854775807, 9223372036854775807 --- 339float(-0) 340--- testing: -9223372036854775807, -9223372036854775808 --- 341float(-0) 342--- testing: -9.2233720368548E+18, 0 --- 343float(NAN) 344--- testing: -9.2233720368548E+18, 1 --- 345float(-0) 346--- testing: -9.2233720368548E+18, -1 --- 347float(-0) 348--- testing: -9.2233720368548E+18, 7 --- 349float(-1) 350--- testing: -9.2233720368548E+18, 9 --- 351float(-8) 352--- testing: -9.2233720368548E+18, 65 --- 353float(-8) 354--- testing: -9.2233720368548E+18, -44 --- 355float(-8) 356--- testing: -9.2233720368548E+18, 2147483647 --- 357float(-2) 358--- testing: -9.2233720368548E+18, -2147483648 --- 359float(-0) 360--- testing: -9.2233720368548E+18, 9223372036854775807 --- 361float(-0) 362--- testing: -9.2233720368548E+18, -9223372036854775808 --- 363float(-0) 364===DONE=== 365