Return to is_float_64bit.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / general_functions |
1.1 misho 1: --TEST-- 2: Test is_float() & it's FALIASes: is_double() & is_real() functions 3: --SKIPIF-- 4: <?php 5: if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only"); 6: ?> 7: --INI-- 8: precision=14 9: --FILE-- 10: <?php 11: /* Prototype: bool is_float ( mixed $var ); 12: * Description: Finds whether the given variable is a float 13: */ 14: 15: echo "*** Testing is_float(), is_double() and is_real() with float values***\n"; 16: // different valid float vlaues 17: $floats = array( 18: -2147483649, // float value 19: 2147483648, // float value 20: -0x80000001, // float value, beyond max negative int 21: 0x800000001, // float value, beyond max positive int 22: 020000000001, // float value, beyond max positive int 23: -020000000001, // float value, beyond max negative int 24: 0.0, 25: -0.1, 26: 10.0000000000000000005, 27: 10.5e+5, 28: 1e5, 29: -1e5, 30: 1e-5, 31: -1e-5, 32: 1e+5, 33: -1e+5, 34: 1E5, 35: -1E5, 36: 1E+5, 37: -1E+5, 38: 1E-5, 39: -1E-5, 40: .5e+7, 41: -.5e+7, 42: .6e-19, 43: -.6e-19, 44: .05E+44, 45: -.05E+44, 46: .0034E-30, 47: -.0034E-30 48: ); 49: /* loop to check that is_float(), is_double() & is_real() recognizes 50: different float values, expected: bool(true) */ 51: $loop_counter = 1; 52: foreach ($floats as $float ) { 53: echo "-- Iteration $loop_counter --\n"; $loop_counter++; 54: var_dump( is_float($float) ); 55: var_dump( is_double($float) ); 56: var_dump( is_real($float) ); 57: } 58: 59: echo "\n*** Testing is_float(), is_double() & is_real() with non float values ***\n"; 60: // get a resource type variable 61: $fp = fopen (__FILE__, "r"); 62: $dfp = opendir ( dirname(__FILE__) ); 63: 64: // unset variable 65: $unset_var = 10; 66: unset ($unset_var); 67: 68: // non_scalar values, objects, arrays, resources and boolean 69: class foo 70: { 71: var $array = array(10.5); 72: }; 73: $object = new foo(); 74: 75: $not_floats = array ( 76: new foo, //object 77: $object, 78: 79: $fp, // resource 80: $dfp, 81: 82: array(), // arrays 83: array(NULL), 84: array(0.5e10), 85: array(1,2,3,4), 86: array("string"), 87: 88: NULL, // nulls 89: null, 90: 91: true, // boolean 92: TRUE, 93: false, 94: FALSE, 95: 96: "", // strings 97: '', 98: "0", 99: '0', 100: "0.0", 101: '0.0', 102: '0.5', 103: "-0.5", 104: "1e5", 105: '1e5', 106: '1.5e6_string', 107: "1.5e6_string", 108: 109: 1, // integers, hex and octal 110: -1, 111: 0, 112: 12345, 113: 0xFF55, 114: -0x673, 115: 0123, 116: -0123, 117: 118: @$unset_var, // unset variable 119: @$undefined_var 120: ); 121: /* loop through the $not_floats to see working of 122: is_float(), is_double() & is_real() on objects, 123: arrays, boolean and others */ 124: $loop_counter = 1; 125: foreach ($not_floats as $value ) { 126: echo "--Iteration $loop_counter--\n"; $loop_counter++; 127: var_dump( is_float($value) ); 128: var_dump( is_double($value) ); 129: var_dump( is_real($value) ); 130: } 131: 132: echo "\n*** Testing error conditions ***\n"; 133: //Zero argument 134: var_dump( is_float() ); 135: var_dump( is_double() ); 136: var_dump( is_real() ); 137: 138: //arguments more than expected 139: var_dump( is_float( $floats[0], $floats[1]) ); 140: var_dump( is_double( $floats[0], $floats[1]) ); 141: var_dump( is_real( $floats[0], $floats[1]) ); 142: 143: echo "Done\n"; 144: ?> 145: --EXPECTF-- 146: *** Testing is_float(), is_double() and is_real() with float values*** 147: -- Iteration 1 -- 148: bool(false) 149: bool(false) 150: bool(false) 151: -- Iteration 2 -- 152: bool(false) 153: bool(false) 154: bool(false) 155: -- Iteration 3 -- 156: bool(false) 157: bool(false) 158: bool(false) 159: -- Iteration 4 -- 160: bool(false) 161: bool(false) 162: bool(false) 163: -- Iteration 5 -- 164: bool(false) 165: bool(false) 166: bool(false) 167: -- Iteration 6 -- 168: bool(false) 169: bool(false) 170: bool(false) 171: -- Iteration 7 -- 172: bool(true) 173: bool(true) 174: bool(true) 175: -- Iteration 8 -- 176: bool(true) 177: bool(true) 178: bool(true) 179: -- Iteration 9 -- 180: bool(true) 181: bool(true) 182: bool(true) 183: -- Iteration 10 -- 184: bool(true) 185: bool(true) 186: bool(true) 187: -- Iteration 11 -- 188: bool(true) 189: bool(true) 190: bool(true) 191: -- Iteration 12 -- 192: bool(true) 193: bool(true) 194: bool(true) 195: -- Iteration 13 -- 196: bool(true) 197: bool(true) 198: bool(true) 199: -- Iteration 14 -- 200: bool(true) 201: bool(true) 202: bool(true) 203: -- Iteration 15 -- 204: bool(true) 205: bool(true) 206: bool(true) 207: -- Iteration 16 -- 208: bool(true) 209: bool(true) 210: bool(true) 211: -- Iteration 17 -- 212: bool(true) 213: bool(true) 214: bool(true) 215: -- Iteration 18 -- 216: bool(true) 217: bool(true) 218: bool(true) 219: -- Iteration 19 -- 220: bool(true) 221: bool(true) 222: bool(true) 223: -- Iteration 20 -- 224: bool(true) 225: bool(true) 226: bool(true) 227: -- Iteration 21 -- 228: bool(true) 229: bool(true) 230: bool(true) 231: -- Iteration 22 -- 232: bool(true) 233: bool(true) 234: bool(true) 235: -- Iteration 23 -- 236: bool(true) 237: bool(true) 238: bool(true) 239: -- Iteration 24 -- 240: bool(true) 241: bool(true) 242: bool(true) 243: -- Iteration 25 -- 244: bool(true) 245: bool(true) 246: bool(true) 247: -- Iteration 26 -- 248: bool(true) 249: bool(true) 250: bool(true) 251: -- Iteration 27 -- 252: bool(true) 253: bool(true) 254: bool(true) 255: -- Iteration 28 -- 256: bool(true) 257: bool(true) 258: bool(true) 259: -- Iteration 29 -- 260: bool(true) 261: bool(true) 262: bool(true) 263: -- Iteration 30 -- 264: bool(true) 265: bool(true) 266: bool(true) 267: 268: *** Testing is_float(), is_double() & is_real() with non float values *** 269: --Iteration 1-- 270: bool(false) 271: bool(false) 272: bool(false) 273: --Iteration 2-- 274: bool(false) 275: bool(false) 276: bool(false) 277: --Iteration 3-- 278: bool(false) 279: bool(false) 280: bool(false) 281: --Iteration 4-- 282: bool(false) 283: bool(false) 284: bool(false) 285: --Iteration 5-- 286: bool(false) 287: bool(false) 288: bool(false) 289: --Iteration 6-- 290: bool(false) 291: bool(false) 292: bool(false) 293: --Iteration 7-- 294: bool(false) 295: bool(false) 296: bool(false) 297: --Iteration 8-- 298: bool(false) 299: bool(false) 300: bool(false) 301: --Iteration 9-- 302: bool(false) 303: bool(false) 304: bool(false) 305: --Iteration 10-- 306: bool(false) 307: bool(false) 308: bool(false) 309: --Iteration 11-- 310: bool(false) 311: bool(false) 312: bool(false) 313: --Iteration 12-- 314: bool(false) 315: bool(false) 316: bool(false) 317: --Iteration 13-- 318: bool(false) 319: bool(false) 320: bool(false) 321: --Iteration 14-- 322: bool(false) 323: bool(false) 324: bool(false) 325: --Iteration 15-- 326: bool(false) 327: bool(false) 328: bool(false) 329: --Iteration 16-- 330: bool(false) 331: bool(false) 332: bool(false) 333: --Iteration 17-- 334: bool(false) 335: bool(false) 336: bool(false) 337: --Iteration 18-- 338: bool(false) 339: bool(false) 340: bool(false) 341: --Iteration 19-- 342: bool(false) 343: bool(false) 344: bool(false) 345: --Iteration 20-- 346: bool(false) 347: bool(false) 348: bool(false) 349: --Iteration 21-- 350: bool(false) 351: bool(false) 352: bool(false) 353: --Iteration 22-- 354: bool(false) 355: bool(false) 356: bool(false) 357: --Iteration 23-- 358: bool(false) 359: bool(false) 360: bool(false) 361: --Iteration 24-- 362: bool(false) 363: bool(false) 364: bool(false) 365: --Iteration 25-- 366: bool(false) 367: bool(false) 368: bool(false) 369: --Iteration 26-- 370: bool(false) 371: bool(false) 372: bool(false) 373: --Iteration 27-- 374: bool(false) 375: bool(false) 376: bool(false) 377: --Iteration 28-- 378: bool(false) 379: bool(false) 380: bool(false) 381: --Iteration 29-- 382: bool(false) 383: bool(false) 384: bool(false) 385: --Iteration 30-- 386: bool(false) 387: bool(false) 388: bool(false) 389: --Iteration 31-- 390: bool(false) 391: bool(false) 392: bool(false) 393: --Iteration 32-- 394: bool(false) 395: bool(false) 396: bool(false) 397: --Iteration 33-- 398: bool(false) 399: bool(false) 400: bool(false) 401: --Iteration 34-- 402: bool(false) 403: bool(false) 404: bool(false) 405: --Iteration 35-- 406: bool(false) 407: bool(false) 408: bool(false) 409: --Iteration 36-- 410: bool(false) 411: bool(false) 412: bool(false) 413: --Iteration 37-- 414: bool(false) 415: bool(false) 416: bool(false) 417: 418: *** Testing error conditions *** 419: 420: Warning: is_float() expects exactly 1 parameter, 0 given in %s on line %d 421: bool(false) 422: 423: Warning: is_double() expects exactly 1 parameter, 0 given in %s on line %d 424: bool(false) 425: 426: Warning: is_real() expects exactly 1 parameter, 0 given in %s on line %d 427: bool(false) 428: 429: Warning: is_float() expects exactly 1 parameter, 2 given in %s on line %d 430: bool(false) 431: 432: Warning: is_double() expects exactly 1 parameter, 2 given in %s on line %d 433: bool(false) 434: 435: Warning: is_real() expects exactly 1 parameter, 2 given in %s on line %d 436: bool(false) 437: Done