mirror of
https://github.com/chillerlan/php-qrcode.git
synced 2026-08-27 18:48:13 +00:00
Fixed version regression due to off-by-one error and added a test.
This commit is contained in:
Regular → Executable
+49
@@ -22,6 +22,46 @@ class QRMatrixTest extends QRTestAbstract{
|
||||
|
||||
protected $version = 7;
|
||||
|
||||
/**
|
||||
* @link http://www.thonky.com/qr-code-tutorial/format-version-tables
|
||||
*/
|
||||
const VERSION_REF = [
|
||||
7 => '000111110010010100',
|
||||
8 => '001000010110111100',
|
||||
9 => '001001101010011001',
|
||||
10 => '001010010011010011',
|
||||
11 => '001011101111110110',
|
||||
12 => '001100011101100010',
|
||||
13 => '001101100001000111',
|
||||
14 => '001110011000001101',
|
||||
15 => '001111100100101000',
|
||||
16 => '010000101101111000',
|
||||
17 => '010001010001011101',
|
||||
18 => '010010101000010111',
|
||||
19 => '010011010100110010',
|
||||
20 => '010100100110100110',
|
||||
21 => '010101011010000011',
|
||||
22 => '010110100011001001',
|
||||
23 => '010111011111101100',
|
||||
24 => '011000111011000100',
|
||||
25 => '011001000111100001',
|
||||
26 => '011010111110101011',
|
||||
27 => '011011000010001110',
|
||||
28 => '011100110000011010',
|
||||
29 => '011101001100111111',
|
||||
30 => '011110110101110101',
|
||||
31 => '011111001001010000',
|
||||
32 => '100000100111010101',
|
||||
33 => '100001011011110000',
|
||||
34 => '100010100010111010',
|
||||
35 => '100011011110011111',
|
||||
36 => '100100101100001011',
|
||||
37 => '100101010000101110',
|
||||
38 => '100110101001100100',
|
||||
39 => '100111010101000001',
|
||||
40 => '101000110001101001'
|
||||
];
|
||||
|
||||
/**
|
||||
* @var \chillerlan\QRCode\Data\QRMatrix
|
||||
*/
|
||||
@@ -61,6 +101,15 @@ class QRMatrixTest extends QRTestAbstract{
|
||||
$this->assertSame($this->version, $this->matrix->version());
|
||||
}
|
||||
|
||||
public function testVersionPattern() {
|
||||
foreach (self::VERSION_REF as $version => $mask) {
|
||||
$hexRef = base_convert(self::VERSION_REF[$version],2 ,16);
|
||||
$hexImpl = dechex(QRMatrix::versionPattern[$version]);
|
||||
|
||||
$this->assertEquals($hexRef, $hexImpl);
|
||||
}
|
||||
}
|
||||
|
||||
public function testECC(){
|
||||
$this->assertSame(QRCode::ECC_L, $this->matrix->eccLevel());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user