| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
- declare(strict_types = 1);
- namespace BaconQrCodeTest\Common;
- use BaconQrCode\Common\ErrorCorrectionLevel;
- use BaconQrCode\Common\FormatInformation;
- use PHPUnit\Framework\TestCase;
- class FormatInformationTest extends TestCase
- {
- private const MASKED_TEST_FORMAT_INFO = 0x2bed;
- private const UNMAKSED_TEST_FORMAT_INFO = self::MASKED_TEST_FORMAT_INFO ^ 0x5412;
- public function testBitsDiffering() : void
- {
- $this->assertSame(0, FormatInformation::numBitsDiffering(1, 1));
- $this->assertSame(1, FormatInformation::numBitsDiffering(0, 2));
- $this->assertSame(2, FormatInformation::numBitsDiffering(1, 2));
- $this->assertEquals(32, FormatInformation::numBitsDiffering(-1, 0));
- }
- public function testDecode() : void
- {
- $expected = FormatInformation::decodeFormatInformation(
- self::MASKED_TEST_FORMAT_INFO,
- self::MASKED_TEST_FORMAT_INFO
- );
- $this->assertNotNull($expected);
- $this->assertSame(7, $expected->getDataMask());
- $this->assertSame(ErrorCorrectionLevel::Q(), $expected->getErrorCorrectionLevel());
- $this->assertEquals(
- $expected,
- FormatInformation::decodeFormatInformation(
- self::UNMAKSED_TEST_FORMAT_INFO,
- self::MASKED_TEST_FORMAT_INFO
- )
- );
- }
- public function testDecodeWithBitDifference() : void
- {
- $expected = FormatInformation::decodeFormatInformation(
- self::MASKED_TEST_FORMAT_INFO,
- self::MASKED_TEST_FORMAT_INFO
- );
- $this->assertEquals(
- $expected,
- FormatInformation::decodeFormatInformation(
- self::MASKED_TEST_FORMAT_INFO ^ 0x1,
- self::MASKED_TEST_FORMAT_INFO ^ 0x1
- )
- );
- $this->assertEquals(
- $expected,
- FormatInformation::decodeFormatInformation(
- self::MASKED_TEST_FORMAT_INFO ^ 0x3,
- self::MASKED_TEST_FORMAT_INFO ^ 0x3
- )
- );
- $this->assertEquals(
- $expected,
- FormatInformation::decodeFormatInformation(
- self::MASKED_TEST_FORMAT_INFO ^ 0x7,
- self::MASKED_TEST_FORMAT_INFO ^ 0x7
- )
- );
- $this->assertNull(
- FormatInformation::decodeFormatInformation(
- self::MASKED_TEST_FORMAT_INFO ^ 0xf,
- self::MASKED_TEST_FORMAT_INFO ^ 0xf
- )
- );
- }
- public function testDecodeWithMisRead() : void
- {
- $expected = FormatInformation::decodeFormatInformation(
- self::MASKED_TEST_FORMAT_INFO,
- self::MASKED_TEST_FORMAT_INFO
- );
- $this->assertEquals(
- $expected,
- FormatInformation::decodeFormatInformation(
- self::MASKED_TEST_FORMAT_INFO ^ 0x3,
- self::MASKED_TEST_FORMAT_INFO ^ 0xf
- )
- );
- }
- }
|