<?php namespace BitWasp\Buffertools\Tests\Types; use BitWasp\Buffertools\Buffer; use BitWasp\Buffertools\ByteOrder; use BitWasp\Buffertools\Parser; use BitWasp\Buffertools\Tests\BinaryTest; use BitWasp\Buffertools\Types\Int32; use BitWasp\Buffertools\Types\SignedIntInterface; use Mdanter\Ecc\EccFactory; class IntSetTest extends BinaryTest { public function getIntSetVectors() { $int32_le = new Int32(EccFactory::getAdapter(), ByteOrder::LE); $int32_be = new Int32(EccFactory::getAdapter(), ByteOrder::BE); return [ [$int32_be, '1', '00000001'], [$int32_le, '1', '01000000'], [$int32_be, '-1', 'ffffffff'], [$int32_le, '-1', 'ffffffff'], [$int32_be, '0', '00000000'], [$int32_le, '0', '00000000'], ]; } /** * @dataProvider getIntSetVectors */ public function testInt(SignedIntInterface $signed, $int, $expectedHex) { $out = $signed->write($int); $this->assertEquals($expectedHex, str_pad(bin2hex($out), $signed->getBitSize() / 4, '0', STR_PAD_LEFT)); $parser = new Parser(new Buffer($out)); $recovered = $signed->read($parser); $this->assertEquals($int, $recovered); } }