12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?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
- )
- );
- }
- }
|