1--TEST-- 2pack()/unpack(): float/double tests 3--FILE-- 4<?php 5var_dump( 6 'pack e', 7 bin2hex(pack("e", "")), 8 bin2hex(pack("e", "a")), 9 bin2hex(pack("e", " ")), 10 bin2hex(pack("e", NULL)), 11 bin2hex(pack("e", 0)), 12 bin2hex(pack("e", 1)), 13 bin2hex(pack("e", 1.0)), 14 bin2hex(pack("e", 10000000000000000)), 15 bin2hex(pack("e", 0.591234709823149)), 16 bin2hex(pack("e", 12345678901234567890.1234567898765432123456789)), 17 bin2hex(pack("e", -1)), 18 bin2hex(pack("e", -1.0)), 19 bin2hex(pack("e", -10000000000000000)), 20 bin2hex(pack("e", -0.591234709823149)), 21 bin2hex(pack("e", -12345678901234567890.1234567898765432123456789)), 22 23 'pack E', 24 bin2hex(pack("E", "")), 25 bin2hex(pack("E", "a")), 26 bin2hex(pack("E", " ")), 27 bin2hex(pack("E", NULL)), 28 bin2hex(pack("E", 0)), 29 bin2hex(pack("E", 1)), 30 bin2hex(pack("E", 1.0)), 31 bin2hex(pack("E", 10000000000000000)), 32 bin2hex(pack("E", 0.591234709823149)), 33 bin2hex(pack("E", 12345678901234567890.1234567898765432123456789)), 34 bin2hex(pack("E", -1)), 35 bin2hex(pack("E", -1.0)), 36 bin2hex(pack("E", -10000000000000000)), 37 bin2hex(pack("E", -0.591234709823149)), 38 bin2hex(pack("E", -12345678901234567890.1234567898765432123456789)), 39 40 'pack g', 41 bin2hex(pack("g", "")), 42 bin2hex(pack("g", "a")), 43 bin2hex(pack("g", " ")), 44 bin2hex(pack("g", NULL)), 45 bin2hex(pack("g", 0)), 46 bin2hex(pack("g", 1)), 47 bin2hex(pack("g", 1.0)), 48 bin2hex(pack("g", 10000000000000000)), 49 bin2hex(pack("g", 0.591234709823149)), 50 bin2hex(pack("g", 12345678901234567890.1234567898765432123456789)), 51 bin2hex(pack("g", -1)), 52 bin2hex(pack("g", -1.0)), 53 bin2hex(pack("g", -10000000000000000)), 54 bin2hex(pack("g", -0.591234709823149)), 55 bin2hex(pack("g", -12345678901234567890.1234567898765432123456789)), 56 57 'pack G', 58 bin2hex(pack("G", "")), 59 bin2hex(pack("G", "a")), 60 bin2hex(pack("G", " ")), 61 bin2hex(pack("G", NULL)), 62 bin2hex(pack("G", 0)), 63 bin2hex(pack("G", 1)), 64 bin2hex(pack("G", 1.0)), 65 bin2hex(pack("G", 10000000000000000)), 66 bin2hex(pack("G", 0.591234709823149)), 67 bin2hex(pack("G", 12345678901234567890.1234567898765432123456789)), 68 bin2hex(pack("G", -1)), 69 bin2hex(pack("G", -1.0)), 70 bin2hex(pack("G", -10000000000000000)), 71 bin2hex(pack("G", -0.591234709823149)), 72 bin2hex(pack("G", -12345678901234567890.1234567898765432123456789)), 73 74 'unpack e', 75 unpack('e', hex2bin('0000000000000000')), 76 unpack('e', hex2bin('000000000000f03f')), 77 unpack('e', hex2bin('0080e03779c34143')), 78 unpack('e', hex2bin('4a6ade0d65ebe23f')), 79 unpack('e', hex2bin('000000000000f0bf')), 80 unpack('e', hex2bin('0080e03779c341c3')), 81 unpack('e', hex2bin('4a6ade0d65ebe2bf')), 82 unpack('e', hex2bin('e1639d31956ae5c3')), 83 84 'unpack E', 85 unpack('E', hex2bin('3ff0000000000000')), 86 unpack('E', hex2bin('4341c37937e08000')), 87 unpack('E', hex2bin('3fe2eb650dde6a4a')), 88 unpack('E', hex2bin('43e56a95319d63e1')), 89 unpack('E', hex2bin('bff0000000000000')), 90 unpack('E', hex2bin('c341c37937e08000')), 91 unpack('E', hex2bin('bfe2eb650dde6a4a')), 92 unpack('E', hex2bin('c3e56a95319d63e1')), 93 94 'unpack g', 95 unpack('g', hex2bin('0000803f')), 96 unpack('g', hex2bin('ca1b0e5a')), 97 unpack('g', hex2bin('285b173f')), 98 unpack('g', hex2bin('aa542b5f')), 99 unpack('g', hex2bin('000080bf')), 100 unpack('g', hex2bin('ca1b0eda')), 101 unpack('g', hex2bin('285b17bf')), 102 unpack('g', hex2bin('aa542bdf')), 103 104 'unpack G', 105 unpack('G', hex2bin('3f800000')), 106 unpack('G', hex2bin('5a0e1bca')), 107 unpack('G', hex2bin('3f175b28')), 108 unpack('G', hex2bin('5f2b54aa')), 109 unpack('G', hex2bin('bf800000')), 110 unpack('G', hex2bin('da0e1bca')), 111 unpack('G', hex2bin('bf175b28')), 112 unpack('G', hex2bin('df2b54aa')) 113 114); 115?> 116--EXPECT-- 117string(6) "pack e" 118string(16) "0000000000000000" 119string(16) "0000000000000000" 120string(16) "0000000000000000" 121string(16) "0000000000000000" 122string(16) "0000000000000000" 123string(16) "000000000000f03f" 124string(16) "000000000000f03f" 125string(16) "0080e03779c34143" 126string(16) "4a6ade0d65ebe23f" 127string(16) "e1639d31956ae543" 128string(16) "000000000000f0bf" 129string(16) "000000000000f0bf" 130string(16) "0080e03779c341c3" 131string(16) "4a6ade0d65ebe2bf" 132string(16) "e1639d31956ae5c3" 133string(6) "pack E" 134string(16) "0000000000000000" 135string(16) "0000000000000000" 136string(16) "0000000000000000" 137string(16) "0000000000000000" 138string(16) "0000000000000000" 139string(16) "3ff0000000000000" 140string(16) "3ff0000000000000" 141string(16) "4341c37937e08000" 142string(16) "3fe2eb650dde6a4a" 143string(16) "43e56a95319d63e1" 144string(16) "bff0000000000000" 145string(16) "bff0000000000000" 146string(16) "c341c37937e08000" 147string(16) "bfe2eb650dde6a4a" 148string(16) "c3e56a95319d63e1" 149string(6) "pack g" 150string(8) "00000000" 151string(8) "00000000" 152string(8) "00000000" 153string(8) "00000000" 154string(8) "00000000" 155string(8) "0000803f" 156string(8) "0000803f" 157string(8) "ca1b0e5a" 158string(8) "285b173f" 159string(8) "aa542b5f" 160string(8) "000080bf" 161string(8) "000080bf" 162string(8) "ca1b0eda" 163string(8) "285b17bf" 164string(8) "aa542bdf" 165string(6) "pack G" 166string(8) "00000000" 167string(8) "00000000" 168string(8) "00000000" 169string(8) "00000000" 170string(8) "00000000" 171string(8) "3f800000" 172string(8) "3f800000" 173string(8) "5a0e1bca" 174string(8) "3f175b28" 175string(8) "5f2b54aa" 176string(8) "bf800000" 177string(8) "bf800000" 178string(8) "da0e1bca" 179string(8) "bf175b28" 180string(8) "df2b54aa" 181string(8) "unpack e" 182array(1) { 183 [1]=> 184 float(0) 185} 186array(1) { 187 [1]=> 188 float(1) 189} 190array(1) { 191 [1]=> 192 float(1.0E+16) 193} 194array(1) { 195 [1]=> 196 float(0.59123470982315) 197} 198array(1) { 199 [1]=> 200 float(-1) 201} 202array(1) { 203 [1]=> 204 float(-1.0E+16) 205} 206array(1) { 207 [1]=> 208 float(-0.59123470982315) 209} 210array(1) { 211 [1]=> 212 float(-1.2345678901235E+19) 213} 214string(8) "unpack E" 215array(1) { 216 [1]=> 217 float(1) 218} 219array(1) { 220 [1]=> 221 float(1.0E+16) 222} 223array(1) { 224 [1]=> 225 float(0.59123470982315) 226} 227array(1) { 228 [1]=> 229 float(1.2345678901235E+19) 230} 231array(1) { 232 [1]=> 233 float(-1) 234} 235array(1) { 236 [1]=> 237 float(-1.0E+16) 238} 239array(1) { 240 [1]=> 241 float(-0.59123470982315) 242} 243array(1) { 244 [1]=> 245 float(-1.2345678901235E+19) 246} 247string(8) "unpack g" 248array(1) { 249 [1]=> 250 float(1) 251} 252array(1) { 253 [1]=> 254 float(1.0000000272564E+16) 255} 256array(1) { 257 [1]=> 258 float(0.59123468399048) 259} 260array(1) { 261 [1]=> 262 float(1.2345679395506E+19) 263} 264array(1) { 265 [1]=> 266 float(-1) 267} 268array(1) { 269 [1]=> 270 float(-1.0000000272564E+16) 271} 272array(1) { 273 [1]=> 274 float(-0.59123468399048) 275} 276array(1) { 277 [1]=> 278 float(-1.2345679395506E+19) 279} 280string(8) "unpack G" 281array(1) { 282 [1]=> 283 float(1) 284} 285array(1) { 286 [1]=> 287 float(1.0000000272564E+16) 288} 289array(1) { 290 [1]=> 291 float(0.59123468399048) 292} 293array(1) { 294 [1]=> 295 float(1.2345679395506E+19) 296} 297array(1) { 298 [1]=> 299 float(-1) 300} 301array(1) { 302 [1]=> 303 float(-1.0000000272564E+16) 304} 305array(1) { 306 [1]=> 307 float(-0.59123468399048) 308} 309array(1) { 310 [1]=> 311 float(-1.2345679395506E+19) 312} 313