* @author Ryan Butterfield * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup * @license http://code.google.com/p/php-reader/wiki/License New BSD License * @version $Rev: 107 $ */ final class TestTransform extends PHPUnit_Framework_TestCase { function testInt64LE() { $this->assertEquals (0x7fffffffffffffff, Transform::fromInt64BE (Transform::toInt64BE(0x7fffffffffffffff))); } function testInt64BE() { $this->assertEquals (0x7fffffffffffffff, Transform::fromInt64BE (Transform::toInt64BE(0x7fffffffffffffff))); } function testInt32() { $this->assertEquals (0x7fffffff, Transform::fromInt32(Transform::toInt32(0x7fffffff))); $this->assertEquals (-0x7fffffff, Transform::fromInt32(Transform::toInt32(-0x7fffffff))); $this->assertEquals(-1, Transform::fromInt32(Transform::toInt32(-1))); } function testInt32LE() { $this->assertEquals(1, Transform::fromInt32LE("\x01\x00\x00\x00")); $this->assertEquals (0x7fffffff, Transform::fromInt32LE(Transform::toInt32LE(0x7fffffff))); $this->assertEquals (-0x7fffffff, Transform::fromInt32LE(Transform::toInt32LE(-0x7fffffff))); $this->assertEquals(-1, Transform::fromInt32LE(Transform::toInt32LE(-1))); } function testInt32BE() { $this->assertEquals(1, Transform::fromInt32BE("\x00\x00\x00\x01")); $this->assertEquals (0x7fffffff, Transform::fromInt32BE(Transform::toInt32BE(0x7fffffff))); $this->assertEquals (-0x7fffffff, Transform::fromInt32BE(Transform::toInt32BE(-0x7fffffff))); } function testUInt32LE() { $this->assertEquals ("78563412", Transform::fromHHex(Transform::toUInt32LE(0x12345678))); $this->assertEquals (0xffffffff, Transform::fromUInt32LE(Transform::toUInt32LE(0xffffffff))); } function testUInt32BE() { $this->assertEquals ("12345678", Transform::fromHHex(Transform::toUInt32BE(0x12345678))); $this->assertEquals (0xffffffff, Transform::fromUInt32BE(Transform::toUInt32BE(0xffffffff))); } function testInt16() { $this->assertEquals (0x7fff, Transform::fromInt16(Transform::toInt16(0x7fff))); $this->assertEquals(-1, Transform::fromInt16(Transform::toInt16(-1))); } function testInt16LE() { $this->assertEquals(1, Transform::fromInt16LE("\x01\x00")); $this->assertEquals (0x7fff, Transform::fromInt16LE(Transform::toInt16LE(0x7fff))); $this->assertEquals(-1, Transform::fromInt16LE(Transform::toInt16LE(-1))); } function testInt16BE() { $this->assertEquals(1, Transform::fromInt16BE("\x00\x01")); $this->assertEquals (0x7fff, Transform::fromInt16BE(Transform::toInt16BE(0x7fff))); $this->assertEquals(-1, Transform::fromInt16BE(Transform::toInt16BE(-1))); } function testUInt16LE() { $this->assertEquals ("fffe", Transform::fromHHex(Transform::toUInt16LE(0xfeff))); $this->assertEquals (0xffff, Transform::fromUInt16LE(Transform::toUInt16LE(0xffff))); } function testUInt16BE() { $this->assertEquals ("feff", Transform::fromHHex(Transform::toUInt16BE(0xfeff))); $this->assertEquals (0xffff, Transform::fromUInt16BE(Transform::toUInt16BE(0xffff))); } function testInt8() { $this->assertEquals(0x7f, Transform::fromInt8(Transform::toInt8(0x7f))); } function testString16() { $this->assertEquals("00e4", Transform::fromHHex (Transform::fromString16(Transform::toString16("\x00\xe4")))); $this->assertEquals ("\0T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0.", Transform::fromString16(Transform::toString16LE ("\xff\xfe\0T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0."))); $this->assertEquals ("\0T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0.", Transform::fromString16(Transform::toString16BE ("\xff\xfe\0T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0."))); $this->assertEquals ("\0T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0.", Transform::fromString16(Transform::toString16 ("\0T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0.", Transform::LITTLE_ENDIAN_ORDER))); $this->assertEquals ("\0T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0.", Transform::fromString16(Transform::toString16 ("\0T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0.", Transform::BIG_ENDIAN_ORDER))); } function testString16LE() { $this->assertEquals ("fffe", Transform::fromHHex(Transform::toString16LE("\xff\xfe"))); $this->assertEquals ("\0T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0.", Transform::fromString16LE(Transform::toString16LE ("\0T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0."))); } function testString16BE() { $this->assertEquals ("feff", Transform::fromHHex(Transform::toString16BE("\xff\xfe"))); $this->assertEquals ("\0T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0.", Transform::fromString16BE(Transform::toString16BE ("\0T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0."))); } function testHHex() { $this->assertEquals("6c34", bin2hex(Transform::toHHex("6c34"))); $this->assertEquals("6c34", Transform::fromHHex(Transform::toHHex("6c34"))); } function testLHex() { $this->assertEquals("c643", bin2hex(Transform::toLHex("6c34"))); $this->assertEquals("6c34", Transform::fromLHex(Transform::toLHex("6c34"))); } function testGUID() { $this->assertEquals ("75b22630-668e-11cf-a6d9-00aa0062ce6c", Transform::fromGUID(Transform::toGUID ("75b22630-668e-11cf-a6d9-00aa0062ce6c"))); } }