pack_float.phpt   [plain text]


--TEST--
pack()/unpack(): float/double tests
--FILE--
<?php
var_dump(
    'pack e',
    bin2hex(pack("e", "")),
    bin2hex(pack("e", "a")),
    bin2hex(pack("e", " ")),
    bin2hex(pack("e", NULL)),
    bin2hex(pack("e", 0)),
    bin2hex(pack("e", 1)),
    bin2hex(pack("e", 1.0)),
    bin2hex(pack("e", 10000000000000000)),
    bin2hex(pack("e", 0.591234709823149)),
    bin2hex(pack("e", 12345678901234567890.1234567898765432123456789)),
    bin2hex(pack("e", -1)),
    bin2hex(pack("e", -1.0)),
    bin2hex(pack("e", -10000000000000000)),
    bin2hex(pack("e", -0.591234709823149)),
    bin2hex(pack("e", -12345678901234567890.1234567898765432123456789)),
    
    'pack E',
    bin2hex(pack("E", "")),
    bin2hex(pack("E", "a")),
    bin2hex(pack("E", " ")),
    bin2hex(pack("E", NULL)),
    bin2hex(pack("E", 0)),
    bin2hex(pack("E", 1)),
    bin2hex(pack("E", 1.0)),
    bin2hex(pack("E", 10000000000000000)),
    bin2hex(pack("E", 0.591234709823149)),
    bin2hex(pack("E", 12345678901234567890.1234567898765432123456789)),
    bin2hex(pack("E", -1)),
    bin2hex(pack("E", -1.0)),
    bin2hex(pack("E", -10000000000000000)),
    bin2hex(pack("E", -0.591234709823149)),
    bin2hex(pack("E", -12345678901234567890.1234567898765432123456789)),
    
    'pack g',
    bin2hex(pack("g", "")),
    bin2hex(pack("g", "a")),
    bin2hex(pack("g", " ")),
    bin2hex(pack("g", NULL)),
    bin2hex(pack("g", 0)),
    bin2hex(pack("g", 1)),
    bin2hex(pack("g", 1.0)),
    bin2hex(pack("g", 10000000000000000)),
    bin2hex(pack("g", 0.591234709823149)),
    bin2hex(pack("g", 12345678901234567890.1234567898765432123456789)),
    bin2hex(pack("g", -1)),
    bin2hex(pack("g", -1.0)),
    bin2hex(pack("g", -10000000000000000)),
    bin2hex(pack("g", -0.591234709823149)),
    bin2hex(pack("g", -12345678901234567890.1234567898765432123456789)),
    
    'pack G',
    bin2hex(pack("G", "")),
    bin2hex(pack("G", "a")),
    bin2hex(pack("G", " ")),
    bin2hex(pack("G", NULL)),
    bin2hex(pack("G", 0)),
    bin2hex(pack("G", 1)),
    bin2hex(pack("G", 1.0)),
    bin2hex(pack("G", 10000000000000000)),
    bin2hex(pack("G", 0.591234709823149)),
    bin2hex(pack("G", 12345678901234567890.1234567898765432123456789)),
    bin2hex(pack("G", -1)),
    bin2hex(pack("G", -1.0)),
    bin2hex(pack("G", -10000000000000000)),
    bin2hex(pack("G", -0.591234709823149)),
    bin2hex(pack("G", -12345678901234567890.1234567898765432123456789)),
    
    'unpack e',
    unpack('e', hex2bin('0000000000000000')),
    unpack('e', hex2bin('000000000000f03f')),
    unpack('e', hex2bin('0080e03779c34143')),
    unpack('e', hex2bin('4a6ade0d65ebe23f')),
    unpack('e', hex2bin('000000000000f0bf')),
    unpack('e', hex2bin('0080e03779c341c3')),
    unpack('e', hex2bin('4a6ade0d65ebe2bf')),
    unpack('e', hex2bin('e1639d31956ae5c3')),
    
    'unpack E',
    unpack('E', hex2bin('3ff0000000000000')),
    unpack('E', hex2bin('4341c37937e08000')),
    unpack('E', hex2bin('3fe2eb650dde6a4a')),
    unpack('E', hex2bin('43e56a95319d63e1')),
    unpack('E', hex2bin('bff0000000000000')),
    unpack('E', hex2bin('c341c37937e08000')),
    unpack('E', hex2bin('bfe2eb650dde6a4a')),
    unpack('E', hex2bin('c3e56a95319d63e1')),
    
    'unpack g',
    unpack('g', hex2bin('0000803f')),
    unpack('g', hex2bin('ca1b0e5a')),
    unpack('g', hex2bin('285b173f')),
    unpack('g', hex2bin('aa542b5f')),
    unpack('g', hex2bin('000080bf')),
    unpack('g', hex2bin('ca1b0eda')),
    unpack('g', hex2bin('285b17bf')),
    unpack('g', hex2bin('aa542bdf')),
    
    'unpack G',
    unpack('G', hex2bin('3f800000')),
    unpack('G', hex2bin('5a0e1bca')),
    unpack('G', hex2bin('3f175b28')),
    unpack('G', hex2bin('5f2b54aa')),
    unpack('G', hex2bin('bf800000')),
    unpack('G', hex2bin('da0e1bca')),
    unpack('G', hex2bin('bf175b28')),
    unpack('G', hex2bin('df2b54aa'))
    
);
?>
--EXPECTF--
string(6) "pack e"
string(16) "0000000000000000"
string(16) "0000000000000000"
string(16) "0000000000000000"
string(16) "0000000000000000"
string(16) "0000000000000000"
string(16) "000000000000f03f"
string(16) "000000000000f03f"
string(16) "0080e03779c34143"
string(16) "4a6ade0d65ebe23f"
string(16) "e1639d31956ae543"
string(16) "000000000000f0bf"
string(16) "000000000000f0bf"
string(16) "0080e03779c341c3"
string(16) "4a6ade0d65ebe2bf"
string(16) "e1639d31956ae5c3"
string(6) "pack E"
string(16) "0000000000000000"
string(16) "0000000000000000"
string(16) "0000000000000000"
string(16) "0000000000000000"
string(16) "0000000000000000"
string(16) "3ff0000000000000"
string(16) "3ff0000000000000"
string(16) "4341c37937e08000"
string(16) "3fe2eb650dde6a4a"
string(16) "43e56a95319d63e1"
string(16) "bff0000000000000"
string(16) "bff0000000000000"
string(16) "c341c37937e08000"
string(16) "bfe2eb650dde6a4a"
string(16) "c3e56a95319d63e1"
string(6) "pack g"
string(8) "00000000"
string(8) "00000000"
string(8) "00000000"
string(8) "00000000"
string(8) "00000000"
string(8) "0000803f"
string(8) "0000803f"
string(8) "ca1b0e5a"
string(8) "285b173f"
string(8) "aa542b5f"
string(8) "000080bf"
string(8) "000080bf"
string(8) "ca1b0eda"
string(8) "285b17bf"
string(8) "aa542bdf"
string(6) "pack G"
string(8) "00000000"
string(8) "00000000"
string(8) "00000000"
string(8) "00000000"
string(8) "00000000"
string(8) "3f800000"
string(8) "3f800000"
string(8) "5a0e1bca"
string(8) "3f175b28"
string(8) "5f2b54aa"
string(8) "bf800000"
string(8) "bf800000"
string(8) "da0e1bca"
string(8) "bf175b28"
string(8) "df2b54aa"
string(8) "unpack e"
array(1) {
  [1]=>
  float(0)
}
array(1) {
  [1]=>
  float(1)
}
array(1) {
  [1]=>
  float(1.0E+16)
}
array(1) {
  [1]=>
  float(0.59123470982315)
}
array(1) {
  [1]=>
  float(-1)
}
array(1) {
  [1]=>
  float(-1.0E+16)
}
array(1) {
  [1]=>
  float(-0.59123470982315)
}
array(1) {
  [1]=>
  float(-1.2345678901235E+19)
}
string(8) "unpack E"
array(1) {
  [1]=>
  float(1)
}
array(1) {
  [1]=>
  float(1.0E+16)
}
array(1) {
  [1]=>
  float(0.59123470982315)
}
array(1) {
  [1]=>
  float(1.2345678901235E+19)
}
array(1) {
  [1]=>
  float(-1)
}
array(1) {
  [1]=>
  float(-1.0E+16)
}
array(1) {
  [1]=>
  float(-0.59123470982315)
}
array(1) {
  [1]=>
  float(-1.2345678901235E+19)
}
string(8) "unpack g"
array(1) {
  [1]=>
  float(1)
}
array(1) {
  [1]=>
  float(1.0000000272564E+16)
}
array(1) {
  [1]=>
  float(0.59123468399048)
}
array(1) {
  [1]=>
  float(1.2345679395506E+19)
}
array(1) {
  [1]=>
  float(-1)
}
array(1) {
  [1]=>
  float(-1.0000000272564E+16)
}
array(1) {
  [1]=>
  float(-0.59123468399048)
}
array(1) {
  [1]=>
  float(-1.2345679395506E+19)
}
string(8) "unpack G"
array(1) {
  [1]=>
  float(1)
}
array(1) {
  [1]=>
  float(1.0000000272564E+16)
}
array(1) {
  [1]=>
  float(0.59123468399048)
}
array(1) {
  [1]=>
  float(1.2345679395506E+19)
}
array(1) {
  [1]=>
  float(-1)
}
array(1) {
  [1]=>
  float(-1.0000000272564E+16)
}
array(1) {
  [1]=>
  float(-0.59123468399048)
}
array(1) {
  [1]=>
  float(-1.2345679395506E+19)
}