Feature: Labelprint für Kistenetiketten hinzugefügt

This commit is contained in:
2025-10-27 12:14:44 +01:00
parent 43bc416554
commit 14bae6c9ef
1068 changed files with 229014 additions and 1807 deletions

View File

@@ -0,0 +1,237 @@
<?php
/**
* AztecTest.php
*
* @since 2023-10-20
* @category Library
* @package Barcode
* @author Nicola Asuni <info@tecnick.com>
* @copyright 2023-2024 Nicola Asuni - Tecnick.com LTD
* @license http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
* @link https://github.com/tecnickcom/tc-lib-barcode
*
* This file is part of tc-lib-barcode software library.
*/
namespace Test\Square;
use Test\TestUtil;
use PHPUnit\Framework\Attributes\DataProvider;
/**
* AZTEC Barcode class test
*
* @since 2023-10-20
* @category Library
* @package Barcode
* @author Nicola Asuni <info@tecnick.com>
* @copyright 2023-2024 Nicola Asuni - Tecnick.com LTD
* @license http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
* @link https://github.com/tecnickcom/tc-lib-barcode
*/
class AztecTest extends TestUtil
{
protected function getTestObject(): \Com\Tecnick\Barcode\Barcode
{
return new \Com\Tecnick\Barcode\Barcode();
}
public function testInvalidInput(): void
{
$this->bcExpectException('\\' . \Com\Tecnick\Barcode\Exception::class);
$barcode = $this->getTestObject();
$barcode->getBarcodeObj('AZTEC', '');
}
public function testCapacityException(): void
{
$this->bcExpectException('\\' . \Com\Tecnick\Barcode\Exception::class);
$barcode = $this->getTestObject();
$code = str_pad('', 2000, '0123456789');
$barcode->getBarcodeObj('AZTEC,100,B,F,3', $code);
}
#[DataProvider('getGridDataProvider')]
public function testGetGrid(string $options, string $code, mixed $expected): void
{
$barcode = $this->getTestObject();
$type = $barcode->getBarcodeObj('AZTEC' . $options, $code);
$grid = $type->getGrid();
$this->assertEquals($expected, md5($grid));
}
/**
* @return array<array{string, string, string}>
*/
public static function getGridDataProvider(): array
{
return [
[
',100,A,A,0',
'A',
'c48da49052f674edc66fa02e52334b17',
],
[
'',
' ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'74f1e68830f0c635cd01167245743098',
],
[
'',
' abcdefghijklmnopqrstuvwxyz',
'100ebf910c88922b0ccee88256ba0c81',
],
[
'',
' ,.0123456789',
'ee2a70b7c88a9e0956b1896983e93f91',
],
[
'',
"\r" . '!"#$%&\'()*+,-./:;<=>?[]{}',
'6965459e50f7c3029de42ef5dc5c1fdf',
],
[
'',
"\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A"
. "\x0B\x0C\x0D\x1B\x1C\x1D\x1E\x1F\x40\x5C"
. "\x5E\x5F\x60\x7C\x7E\x7F",
'b8961abf38519b529f7dc6a20e8f3e59',
],
[
'',
'AaB0C#D' . "\x7E",
'9b1f2af28b8d9d222de93dfe6a09a047',
],
[
'',
'aAb0c#d' . "\x7E",
'f4c58cabbdb5d94fa0cc1c31d510936a',
],
[
'',
'#A$a%0&' . "\x7E",
'a17634a1db6372efbf8ea25a303c38f8',
],
[
'',
"\x01A\x01a\x010\x01#",
'c1a585888c7a1eb424ff98bbf7b32d46',
],
[
'',
'PUNCT pairs , . : ' . "\r\n",
'35281793cc5247b291abb8e3fe5ed853',
],
[
'',
'ABCDEabcdeABCDE012345ABCDE?[]{}ABCDE'
. "\x01\x02\x03\x04\x05",
'4ae19b80469a1afff8e490f5afaa8b73',
],
[
'',
'abcdeABCDEabcde012345abcde?[]{}abcde'
. "\x01\x02\x03\x04\x05",
'b0158bfe19c6fe20042128d59e40ca3b',
],
[
'',
'?[]{}ABCDE?[]{}abcde?[]{}012345?[]{}'
. "\x01\x02\x03\x04\x05",
'71ba0ed8c308c93af6af7cd23a76355a',
],
[
'',
"\x01\x02\x03\x04\x05" . 'ABCDE'
. "\x01\x02\x03\x04\x05" . 'abcde'
. "\x01\x02\x03\x04\x05" . '012345'
. "\x01\x02\x03\x04\x05" . '?[]{}',
'f31e14be0b2c1f903e77af11e6c901b0',
],
[
'',
'Lorem ipsum dolor sit amet, consectetur adipiscing elit,'
. ' sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.'
. ' Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris'
. ' nisi ut aliquip ex ea commodo consequat.'
. ' Duis aute irure dolor in reprehenderit in voluptate velit esse'
. ' cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat'
. ' cupidatat non proident,' .
' sunt in culpa qui officia deserunt mollit anim id est laborum.',
'bb2b103d59e035a581fed0619090f89c',
],
[
'',
"\x80\x81\x82\x83\x84",
'da92b009c1f4430e2f62c76c5f708121',
],
[
'',
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89"
. "\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93"
. "\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
. "\x9E\x9F\xA0",
'f3dfdda6d6fdbd747c86f042fc649193',
],
[
'',
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89"
. "\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93"
. "\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
. "\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7"
. "\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1"
. "\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB"
. "\xBC\xBD\xBE",
'ee473dc76e160671f3d1991777894323',
],
[
'',
'012345: : : : : : : : ',
'b7ae80e65d754dc17fe116aaddd33c24',
],
[
'',
'012345. , ',
'92b442e5f1b33be91c576eddc12bcca7',
],
[
'',
'012345. , . , . , . , ',
'598fd97d8a28b1514cd0bf88369c68e9',
],
[
'',
'~~~~~~. , ',
'c40fc61717a7e802d7458897197227b1',
],
[
'',
'******. , ',
'abbe0bdfdc10ad059ad2c415e79dab31',
],
[
'',
"\xBC\xBD\xBE" . '. , ',
'c9ae209e0c6d03014753363affffee8b',
],
];
}
#[DataProvider('getStringDataProvider')]
public function testStrings(string $code): void
{
$barcode = $this->getTestObject();
$type = $barcode->getBarcodeObj('AZTEC,50,B,F', $code);
$this->assertNotNull($type); // @phpstan-ignore method.alreadyNarrowedType
}
/**
* @return array<array{string}>
*/
public static function getStringDataProvider()
{
return \Test\TestStrings::$data;
}
}

View File

@@ -0,0 +1,447 @@
<?php
/**
* DatamatrixTest.php
*
* @since 2015-02-21
* @category Library
* @package Barcode
* @author Nicola Asuni <info@tecnick.com>
* @copyright 2015-2024 Nicola Asuni - Tecnick.com LTD
* @license http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
* @link https://github.com/tecnickcom/tc-lib-barcode
*
* This file is part of tc-lib-barcode software library.
*/
namespace Test\Square;
use Test\TestUtil;
use PHPUnit\Framework\Attributes\DataProvider;
/**
* Datamatrix Barcode class test
*
* @since 2015-02-21
* @category Library
* @package Barcode
* @author Nicola Asuni <info@tecnick.com>
* @copyright 2015-2024 Nicola Asuni - Tecnick.com LTD
* @license http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
* @link https://github.com/tecnickcom/tc-lib-barcode
*/
class DatamatrixTest extends TestUtil
{
protected function getTestObject(): \Com\Tecnick\Barcode\Barcode
{
return new \Com\Tecnick\Barcode\Barcode();
}
public function testInvalidInput(): void
{
$this->bcExpectException('\\' . \Com\Tecnick\Barcode\Exception::class);
$barcode = $this->getTestObject();
$barcode->getBarcodeObj('DATAMATRIX', '');
}
public function testCapacityException(): void
{
$this->bcExpectException('\\' . \Com\Tecnick\Barcode\Exception::class);
$barcode = $this->getTestObject();
$code = str_pad('', 3000, 'X');
$barcode->getBarcodeObj('DATAMATRIX', $code);
}
public function testEncodeTXTC40shiftException(): void
{
$this->bcExpectException('\\' . \Com\Tecnick\Barcode\Exception::class);
$encode = new \Com\Tecnick\Barcode\Type\Square\Datamatrix\Encode();
$chr = -1;
$enc = -1;
$temp_cw = [];
$ptr = 0;
$encode->encodeTXTC40shift($chr, $enc, $temp_cw, $ptr);
}
public function testEncodeTXTC40Exception(): void
{
$this->bcExpectException('\\' . \Com\Tecnick\Barcode\Exception::class);
$encode = new \Com\Tecnick\Barcode\Type\Square\Datamatrix\Encode();
$data = "\x80";
$enc = \Com\Tecnick\Barcode\Type\Square\Datamatrix\Data::ENC_X12;
$temp_cw = [];
$ptr = 0;
$epos = 0;
$charset = [];
$encode->encodeTXTC40($data, $enc, $temp_cw, $ptr, $epos, $charset);
}
#[DataProvider('getGridDataProvider')]
public function testGetGrid(string $mode, string $code, mixed $expected): void
{
$barcode = $this->getTestObject();
$type = $barcode->getBarcodeObj($mode, $code);
$grid = $type->getGrid();
$this->assertEquals($expected, md5($grid));
}
/**
* @return array<array{string, string, string}>
*/
public static function getGridDataProvider(): array
{
return [
[
'DATAMATRIX',
'0&0&0&0&0&0&_',
'fffdfdaec33af0788d24cdfa8cba5ac6',
],
[
'DATAMATRIX',
'0&0&0&0&0&0&0',
'10d0faf5a6e7b71829f268218df7e6af',
],
[
'DATAMATRIX',
'-=-1-=-2-=-3',
'75c6038d90476cec641ad07690989b36',
],
[
'DATAMATRIX',
'-=-1-=-2-=-3x',
'f020e44d0926d17af7eb21febdb38d53',
],
[
'DATAMATRIX',
'-=-1-=-2-=-3xyz',
'17420fbffefddb5f1b8abd0d05de724d',
],
[
'DATAMATRIX',
'-=-1-=-2-=-3-',
'a63372ce839b51294964f0da0ae0f9f9',
],
[
'DATAMATRIX',
'-=-1-=-2-=-3-xy',
'f65ab07c374c53e2a93016776041de42',
],
[
'DATAMATRIX',
'-=-1-=-2-=-3-=x',
'7a30efdf7616397a1ea2fd5fd95fed2c',
],
[
'DATAMATRIX',
'(400)BS2WZ64PA(00)0',
'9cb7f1c2aa5989909229ef8e4252d61d',
],
[
'DATAMATRIX',
'(400)BS2WZ64QA(00)0',
'0494f709138a1feef5a1c9f14852dbe5',
],
[
'DATAMATRIX',
'LD2B 1 CLNGP',
'f806889d1dbe0908dcfb530f86098041',
],
[
'DATAMATRIX',
'XXXXXXXXXNGP',
'c6f2b7b293a2943bae74f2a191ec4aea',
],
[
'DATAMATRIX',
'XXXXXXXXXXXXNGP',
'f7679d5a7ab4a8edf12571a6866d92bc',
],
[
'DATAMATRIX',
'ABCDABCDAB' . "\x80" . 'DABCD',
'39aca5ed58b922bee369e5ab8e3add8c',
],
[
'DATAMATRIX',
'123aabcdefghijklmnopqrstuvwxyzc',
'b2d1e957af10655d7a8c3bae86696314',
],
[
'DATAMATRIX',
'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopq',
'c45bd372694ad7a20fca7d45f3d459ab',
],
[
'DATAMATRIX',
'abcdefghijklmnop',
'4fc7940fe3d19fca12454340c38e3421',
],
[
'DATAMATRIX',
'abcdefghijklmnopq',
'a452e658e3096d8187969cbdc930909c',
],
[
'DATAMATRIX',
'abcdefghij',
'8ec27153e5d173aa2cb907845334e68c',
],
[
'DATAMATRIX',
'30Q324343430794<OQQ',
'e67808f91114fb021851098c4cc65b88',
],
[
'DATAMATRIX',
'0123456789',
'cc1fd942bc919b2d09b3c7cf508c6ae4',
],
[
'DATAMATRIX',
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
'c61d8ced313e2a2e79ab56eded67f11a',
],
[
'DATAMATRIX',
'10f27ce-acb7-4e4e-a7ae-a0b98da6ed4a',
'1a56c44e3977f1ac68057230181e49a8',
],
[
'DATAMATRIX',
'Hello World',
'e72650689027fe75d1f9377ec759c710',
],
[
'DATAMATRIX',
'https://github.com/tecnickcom/tc-lib-barcode',
'efed64acfa2ca29024446fa9816be696',
],
[
'DATAMATRIX',
'abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdab'
. 'cdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd'
. 'abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdab'
. 'cdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd',
'4dc0efb6248b3802c2ab7cf123b884d0',
],
[
'DATAMATRIX',
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*(),./\\',
'1d41ee32691ff75637224e4fbe68a626',
],
[
'DATAMATRIX',
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*(),./\\'
. 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*(),./\\'
. 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*(),./\\',
'0b2921466e097ff9cc1ad63719430540',
],
[
'DATAMATRIX',
"\x80\x8A\x94\x9E",
'9300000cee5a5f7b3b48145d44aa7fff',
],
[
'DATAMATRIX',
'!"£$%^&*()-+_={}[]\'#@~;:/?,.<>|',
'4993e149fd20569c8a4f0d758b6dfa76',
],
[
'DATAMATRIX',
'!"£$',
'792181edb48c6722217dc7e2e4cd4095',
],
[
'DATAMATRIX',
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*(),./\\1234567890',
'7360a5a6c25476711139ae1244f56c29',
],
[
'DATAMATRIX',
"\xFE\xFD"
. 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*(),./\\'
. "\xFC\xFB",
'0f078e5e5735396312245740484fa6d1',
],
[
'DATAMATRIX',
'aABCDEFG',
'f074dee3f0f386d9b2f30b1ce4ad08a8',
],
[
'DATAMATRIX',
'123 45678',
'6c2e6503625e408fe9a4e392743f31a8',
],
[
'DATAMATRIX',
'DATA MATRIX',
'3ba4f4ef8449d795813b353ddcce4d23',
],
[
'DATAMATRIX',
'123ABCD89',
'7ce2f8433b82c16e80f4a4c59cad5d10',
],
[
'DATAMATRIX',
'AB/C123-X',
'703318e1964c63d5d500d14a821827cd',
],
[
'DATAMATRIX',
str_pad('', 300, "\xFE\xFD\xFC\xFB"),
'e524bb17821d0461f3db6f313d35018f',
],
[
'DATAMATRIX',
'ec:b47' . "\x7F" . '4#P d*b}gI2#DB|hl{!~[EYH*=cmR{lf'
. "\x7F" . '=gcGIa.st286. #*"!eG[.Ryr?Kn,1mIyQqC3 6\'3N>',
'57fbb9bfb7d542e2e5eadb615e6be549',
],
[
'DATAMATRIX',
'eA211101A2raJTGL/r9o93CVk4gtpEvWd2A2Qz8jvPc7l8ybD3m'
. 'Wel91ih727kldinPeHJCjhr7fIBX1KQQfsN7BFMX00nlS8FlZG+',
'b2f0d45920c7da5b298bbab5cff5d402',
],
// Square
[
'DATAMATRIX,S',
"\xFF\xFE\xFD\xFC\xFB\xFA\xF9\xF8\xF7\xF6"
. "\xF5\xF4\xF3\xF2\xF1\xF0\xEF\xEE\xED\xEC"
. "\xEB\xEA\xE9\xE8\xE7\xE6\xE5\xE4\xE3\xE2"
. "\xE1\xE0\xDF\xDE\xDD\xDC\xDB\xDA\xD9\xD8"
. "\xD7\xD6\xD5\xD4\xD3\xD2\xD1\xD0\xCF\xCE"
. "\xCD\xCC\xCB\xCA\xC9\xC8\xC7\xC6\xC5\xC4"
. "\xC3\xC2\xC1\xC0\xBF\xBE\xBD\xBC\xBB\xBA"
. "\xB9\xB8\xB7\xB6\xB5\xB4\xB3\xB2\xB1\xB0"
. "\xAF\xAE\xAD\xAC\xAB\xAA\xA9\xA8\xA7\xA6"
. "\xA5\xA4\xA3\xA2\xA1\xA0\x9F\x9E\x9D\x9C"
. "\x9B\x9A\x99\x98\x97\x96\x95\x94\x93\x92"
. "\x91\x90\x8F\x8E\x8D\x8C\x8B\x8A\x89\x88"
. "\x87\x86\x85\x84\x83\x82\x81\x80\x7F\x7E"
. "\x7D\x7C\x7B\x7A\x79\x78\x77\x76\x75\x74"
. "\x73\x72\x71\x70\x6F\x6E\x6D\x6C\x6B\x6A"
. "\x69\x68\x67\x66\x65\x64\x63\x62\x61\x60"
. "\x5F\x5E\x5D\x5C\x5B\x5A\x59\x58\x57\x56"
. "\x55\x54\x53\x52\x51\x50\x4F\x4E\x4D\x4C"
. "\x4B\x4A\x49\x48\x47\x46\x45\x44\x43\x42"
. "\x41\x40\x3F\x3E\x3D\x3C\x3B\x3A\x39\x38"
. "\x37\x36\x35\x34\x33\x32\x31\x30\x2F\x2E"
. "\x2D\x2C\x2B\x2A\x29\x28\x27\x26\x25\x24"
. "\x23\x22\x21\x20\x1F\x1E\x1D\x1C\x1B\x1A"
. "\x19\x18\x17\x16\x15\x14\x13\x12\x11\x10"
. "\x0F\x0E\x0D\x0C\x0B\x0A\x09\x08\x07\x06"
. "\x05\x04\x03\x02\x01",
'514963c4fde0cee7ff91f76dd56015cc',
],
// Rectangular shape
[
'DATAMATRIX,R',
'01234567890',
'd3811e018f960beed6d3fa5e675e290e',
],
[
'DATAMATRIX,R',
'01234567890123456789',
'fe3ecb042dabc4b40c5017e204df105b',
],
[
'DATAMATRIX,R',
'012345678901234567890123456789',
'3f8e9aa4413b90f7e1c2e85b4471fd20',
],
[
'DATAMATRIX,R',
'0123456789012345678901234567890123456789',
'b748b02c1c4cae621a84c8dbba97c710',
],
// Rectangular GS1
[
'DATAMATRIX,R,GS1',
"\xE8" . '01034531200000111719112510ABCD1234',
'f55524d239fc95072d99eafe5363cfeb',
],
[
'DATAMATRIX,R,GS1',
"\xE8" . '01095011010209171719050810ABCD1234' . "\xE8" . '2110',
'e17f2a052271a18cdc00b161908eccb9',
],
[
'DATAMATRIX,R,GS1',
"\xE8" . '01034531200000111712050810ABCD1234' . "\xE8" . '4109501101020917',
'31759950f3253805b100fedf3e536575',
],
// Square GS1
[
'DATAMATRIX,S,GS1',
"\xE8" . '01034531200000111719112510ABCD1234',
'c9efb69a62114fb6a3d2b52f139a372a',
],
[
'DATAMATRIX,S,GS1',
"\xE8" . '01095011010209171719050810ABCD1234' . "\xE8" . '2110',
'9630bdba9fc79b4a4911fc465aa08951',
],
[
'DATAMATRIX,S,GS1',
"\xE8" . '01034531200000111712050810ABCD1234' . "\xE8" . '4109501101020917',
'a29a330a01cce34a346cf7049e2259ee',
],
// Different encoding datamatrix
[
'DATAMATRIX,S,N,ASCII',
'01234567890',
'ac7dd9e1ebdb42d07fe928fb33cd307b'
],
[
'DATAMATRIX,S,N,C40',
'01234567890',
'958a7a3bcd036d7135489eb703a25633'
],
[
'DATAMATRIX,S,N,TXT',
'01234567890',
'057981dfbf527b029ae59d65fb55f61d'
],
[
'DATAMATRIX,S,N,X12',
'01234567890',
'8d75b0fcfb2d0977abd95004a6ba98dd'
],
[
'DATAMATRIX,S,N,EDF',
'01234567890',
'989eab3ca16c97e05dd2307bef32f64b'
],
[
'DATAMATRIX,S,N,BASE256',
'01234567890',
'8b4f688a774130bc654e39dfcfadb482'
],
[
'DATAMATRIX,S,GS1,C40',
"\xE8" . '01095011010209171719050810ABCD1234' . "\xE8" . '2110',
'ba117111dfa40a40e1bb968c719d2eef'
]
];
}
#[DataProvider('getStringDataProvider')]
public function testStrings(string $code): void
{
$barcode = $this->getTestObject();
$type = $barcode->getBarcodeObj('DATAMATRIX', $code);
$this->assertNotNull($type); // @phpstan-ignore method.alreadyNarrowedType
}
/**
* @return array<array{string}>
*/
public static function getStringDataProvider()
{
return \Test\TestStrings::$data;
}
}

View File

@@ -0,0 +1,268 @@
<?php
/**
* PdfFourOneSevenTest.php
*
* @since 2015-02-21
* @category Library
* @package Barcode
* @author Nicola Asuni <info@tecnick.com>
* @copyright 2015-2024 Nicola Asuni - Tecnick.com LTD
* @license http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
* @link https://github.com/tecnickcom/tc-lib-barcode
*
* This file is part of tc-lib-barcode software library.
*/
namespace Test\Square;
use Test\TestUtil;
use PHPUnit\Framework\Attributes\DataProvider;
/**
* PDF417 Barcode class test
*
* @since 2015-02-21
* @category Library
* @package Barcode
* @author Nicola Asuni <info@tecnick.com>
* @copyright 2015-2024 Nicola Asuni - Tecnick.com LTD
* @license http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
* @link https://github.com/tecnickcom/tc-lib-barcode
*/
class PdfFourOneSevenTest extends TestUtil
{
protected function getTestObject(): \Com\Tecnick\Barcode\Barcode
{
return new \Com\Tecnick\Barcode\Barcode();
}
public function testInvalidInput(): void
{
$this->bcExpectException('\\' . \Com\Tecnick\Barcode\Exception::class);
$barcode = $this->getTestObject();
$barcode->getBarcodeObj('PDF417', '');
}
public function testCapacityException(): void
{
$this->bcExpectException('\\' . \Com\Tecnick\Barcode\Exception::class);
$barcode = $this->getTestObject();
$code = str_pad('', 1000, 'X1');
$barcode->getBarcodeObj('PDF417', $code);
}
#[DataProvider('getGridDataProvider')]
public function testGetGrid(string $options, string $code, mixed $expected): void
{
$barcode = $this->getTestObject();
$type = $barcode->getBarcodeObj('PDF417' . $options, $code);
$grid = $type->getGrid();
$this->assertEquals($expected, md5($grid));
}
/**
* @return array<array{string, string, string}>
*/
public static function getGridDataProvider(): array
{
return [
[
'',
str_pad('', 1850, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'),
'38e205c911b94a62c72b7d20fa4361f8',
],
// max text
[
'',
str_pad('', 2710, '123456789'),
'32ba9be56f3e66559b4d4a50f6276da7',
],
// max digits
[
'',
'abc/abc',
'831874fe7d1b3d865c222858eba3507c',
],
[
'',
'0123456789',
'4f9cdac81d62f0020beb93fc3ecdd8ad',
],
[
',2,8,1,0,0,0,1,2',
str_pad('', 1750, 'X'),
'f0874a35e15f11f9aa8bc070a4be24bf',
],
[
',15,8,1,0,0,0,1,2',
str_pad('', 1750, 'X'),
'0288f0a87cc069fc34d6168d7a9f7846',
],
[
'',
str_pad('', 350, '0123456789'),
'394d93048831fee232413da29fb709fb',
],
[
'',
'abcdefghijklmnopqrstuvwxyz01234567890123456789',
'bd4f4215aca0bbc3452a35b81fcf7bdb',
],
[
'',
"\x9E\x13\xC0\x08\x47\x71\x6B\xFC\xAB\xA9"
. "\x72\x72\xCC\x97\xB7\x14\xB4\x1A\x49\x4C"
. "\xC1\x10\x45\xD4\xE8\x5A\xF8\x73\x09\x68"
. "\x95\xA7\x7B\x56\xAF\xC1\xC7\x1B\xBE\x73"
. "\xC4\x32\xE4\x92\xC9\x9C\xA5\x7E\xB6\xED"
. "\xC9\x79\xFD\x0F\x4E\xE7\x69\x48\x5C\x72"
. "\xAF\xF0\x1A\x2B\x47\xC8\xEC\x0F\xE3\xAC"
. "\x81\xA9\xDD\x67\x3C\xA7\x05\xE1\x27\xBA"
. "\xD0\xF0\x34\xCE\xFE\x82\xB7\x69\xC9\x14"
. "\xDA\x7A\x05\xF4\xA5\x4C\xBD\x92\x5B\xA2"
. "\x3F\xDC\x4C\x1E\x44\x87\xC4\x49\x6A\xEB"
. "\x05\x3B\xDC\x38\x0B\xDC\xBA\xC2\x46\x84"
. "\xD5\x22\xFE\xDA\x17\xA4\x28\xD4\x38\x82"
. "\x77\x76\x5F\xC2\x94\xA3\x4B\x5A\xEC\xB4"
. "\x46\xF0\xEF\x23\x2A\xFA\xFE\xE3\xBD\x46"
. "\x69\x94\x67\x68\x70\x7E\x0D\x97\x53\x44"
. "\x1B\xC9\xBA\x79\x8D\x50\x1E\xD7\xA9\x0C"
. "\x8D\xEE\xFB\x7E\x12\x27\x79\x12\x0C\x38"
. "\x58\x74\xCB\xBE\xDC\x3C\x3D\xE9\xD3\x90"
. "\x2F\xED\x5A\xE8\x68\xE6\x39\x86\xBF\xE2"
. "\x91\x4D\xD1\x8E\xCA\xE3\xB4\x45\xF5\xBF"
. "\x7C\x4E\x35\x49\x0D\x12\x85\x4A\xFA\x59"
. "\xD9\x2A\x47\x35\x14\xAF\x1D\x4D\x36\xDB"
. "\x30\xC6\x29\x03\x55\xF3\xE5\x0B\x39\xDB"
. "\xC9\xB4\x2B\xFD\xFC\x38\x11\x83\x81\x0C"
. "\xDB\x5C\x36\x24\x91\x4A\xD2\xAD\x97\x09"
. "\x89\xC6\xCF\xB2\xC9\x26\xA6\xAF\x30\xDF"
. "\x8C\xF9\x95\xB6\xF8\x93\xED\x0A\x17\x70"
. "\x16\xF1\xCC\x4C\x17\x5E\x96\xE8\x0D\x2E"
. "\xF1\x95\xF3\xC1\x49\xBE\xE6\xEF\x6E\x18",
'1cae7ca47cde6ca52522ce31771a5c54',
],
[
'',
"\x9E\xC6\x2D\x5E\xE7\x53\x3C\x2D\x68\x3E"
. "\x7A\x58\xF5\x08\x15\x4C\xAA\xFA\x57\x06"
. "\xA2\x20\x2B\xD0\x11\x60\x8B\x2B\xC0\x0F"
. "\x39\x5F\xD4\x66\xBD\xBC\xB8\xF9\xE9\x22"
. "\x38\x65\x7A\x2F\x6C\x8E\x7A\x18\x89\xD1"
. "\x1E\x2D\xF0\x48\xFD\x02\xA7\x8A\x2C\x69"
. "\x98\x65\xC8\x6D\xCA\x87\x2B\x84\x81\x15"
. "\xA5\xB9\x79\x20\xE7\xE5\xAE\x63\xFC\x39"
. "\x35\x1B\x65\x26\x63\x64\x27\x0C\xED\x53"
. "\x74\x86\xB7\x3E\xF3\x83\xC4\x1F\x08\x46"
. "\x34\xAC\xFE\xAD\xCC\xE7\x93\x7C\x4B\x91"
. "\xB4\x80\xAC\x1B\xA5\x10\x7E\xCC\x1B\x6D"
. "\x21\x8F\xF2\xD8\xCC\xE7\x5C\x91\x07\x63"
. "\xD6\x3B\x11\xD6\xE7\xDD\xBE\x7C\x5A\x0B"
. "\x0E\x10\x8A\xBA\x2B\x31\xC9\xA8\xFC\xE3"
. "\x16\x1F\x74\x0A\xF6\x41\xF0\x53\xD1\xF7"
. "\xB6\xA9\x34\xC7\x81\x1D\xA5\x41\x98\x01"
. "\x4B\xA6\x11\xD4\x61\x3B\x07\x2C\xE3\x04"
. "\x11\xF9\x23\x84\x05\x1A\xC4\xF4\x6C\x97"
. "\xED\x24\x42\x22\xEA\xC2\x3F\x91\x04\xD6"
. "\x92\x4F\x7E\xA2\x24\xDE\xDC\x2A\x0C\xC1"
. "\x2E\x1C\xBB\x50\x9F\xBF\x6A\x64\xB5\xD5"
. "\xFB\xA4\xF9\x3E\xC6\xE4\x02\x06\x77\x05"
. "\xDC\x0A\x53\x5B\xAB\x77\x3B\x89\xA1\x46"
. "\x4B\xCF\x61\x08\x21\x01\xC6\x8A\x65\x7D"
. "\x61\x61\x22\x5B\x9F\xE7\x41\xA0\xED\xB7"
. "\xA5\xCA\xC0\xF8\x26\x6C\x70\x60\xF5\x13"
. "\xA6\x41\xE1\x08\x48\x04\x09\x10\x8D\x6D"
. "\x8D\xED\xCE\xAE\x49\x6F\x97\x8A\x10\x85"
. "\x42\xB4\x51\x03\xAD\x76\x6F\x1F\xD6\x65"
. "\x31\x7D\xA6\x14\x85\xEE\x17\x8D\xFE\xA3"
. "\xFA\x8C\x92\xCA\x3C\xDB\x3A\xD3\x66\x49"
. "\x5A\xA7\xFD\xAA\xAA\xAC\x22\x1B\xCA\xF7"
. "\x80\xFB\x75\x27\x11\xF9\x17\x27\x88\x16"
. "\xCA\x83\xA2\x5E\x4E\xDE\x3A\x88\xB2\x9F"
. "\xD1\x0E\x48\xCF\xB7\xF2\x7C\xD9\x0E\x48"
. "\xD1\x8D\x45\x48\xB4\x55\x43\xCA\x7C\xCA"
. "\xE0\x48\x4F\x83\xA5\x9D\x63\xDF\x26\x17"
. "\x80\xF6\x24\xC7\xC7\xDB\xBB\x45\xB5\xC8"
. "\x8C\x88\x56\xD0\xCF\x0B\x27\x13\xD5\xA2"
. "\xDD\xB6\xE9\x2E\x3B\x90\xCA\x9D\x70\xF0"
. "\xB3\xF0\xE7\xD7\xB9\xB0\xB4\x75\xF4\x6A"
. "\x3E\x81\xF2\x94\x53\xC2\x9F\x79\xD5\x75"
. "\x1D\xB3\x2C\x08\xE0\x67\x97\xAC\x05\x09"
. "\x9D\xB8\xF8\x86\x91\xB3\x37\x46\x29\x2C"
. "\xB0\x66\xAD\xA3\xFA\x02\x67\x9A\x7B\x3D"
. "\x10\x97\xF0\x3C\x9F\xD2\xA2\x37\x7F\xA7"
. "\x40\x1E\x61\x3A\xA3\xF1\xEC\xDA\x39\x16"
. "\x08\xE9\x7C\xB4\x8D\x77\xB6\xF3\x12\x33"
. "\x32\x22\xC9\x23\x5D\x6A\xF4\x01\xA1\x74"
. "\xA7\xE0\x92\x09\x1C\x36\xFA\x0A\x11\x35"
. "\x20\x18\x1F\x9B\xCC\xAC\x14\x84\xA0\x26"
. "\xB6\xD1\x48\x81\xF3\xA4\xEA\xE9\xA4\x8C"
. "\x5F\x4D\x6E\xF0\x56\x89\x27\x51\x92\x38"
. "\x86\xB1\x50\xA4\x4E\x1E\x51\x62\xA1\xF1"
. "\x87\x58\xC4\xCE\xD8\xB9\x74\xC3\xA3\x1A"
. "\x51\x03\x66\xBE\xF3\xBB\x48\x1C\x0E\xDA"
. "\x53\x93\x8D\xA3\x39\xDA\xC0\x89\x3D\x62"
. "\x7C\xC4\xBA\x41\x94\x93\xF9\x09\x58\x9D"
. "\x22\xA8\xA0\x87\x67\x94\x44\xAF\xB0\x51"
. "\x8A\x04\xE4\x19\xA7\x1E\xF2\x68\xA7\x31"
. "\xCA\x24\xF4\x85\x64\x8A\x1A\x5E\x92\x71"
. "\xFB\xB4\x1B\x9D\x3D\x81\x33\x80\x32\xE2"
. "\xD1\xBC\xE6\xB6\xD4\x8E\xD4\xC8\xF6\x7C"
. "\xF8\xC1\x9F\xEE\x47\x04\x79\x60\x62\x0D"
. "\xD1\x5F\xC1\xEB\xFB\xFD\x6E\x2F\x7F\x9F"
. "\x12\x51\x5D\xF7\x09\x32\x87\xDC\xF9\x7E"
. "\x5A\xF3\x40\xF8\xE3\x87\xFC\x5E\xE7\x60"
. "\x6A\xBA\xBE\x2C\xA6\xBB\x2B\x15\xE9\xA9"
. "\xB4\xFB\xFA\x12\xF4\x05\x44\x7C\xE1\x3F"
. "\xFA\x3C\x34\x3B\x35\x18\xC2\x33\x75\xAB"
. "\x92\xDF\x66\x52\x0C\x0D\x0E\x36\x22\xF6"
. "\xDF\xD6\xF3\xDA\xE8\xE8\xDE\x2D\x66\xC0"
. "\x6C\x61\xFC\x9F\x9C\x32\xB7\x60\x65\x2D"
. "\x0C\xF6\x0D\x71\x49\x19\x7E\x57\x4F\xA0"
. "\x4E\x2F\x77\x43\x0B\x60\x2D\xE9\x8D\x92"
. "\xAB\xF9\xF2\xA8\x99\x8F\xDA\x51\xEE\x40"
. "\x7E\xFA\x37\x8B\x6D\x80\xA3\xEA\xD6\xF2"
. "\x8B\x26\x22\x04\x68\x2D\x64\x94\x17\xF1"
. "\x28\xC2\xEB\x1B\x6B\x85\xAA\x46\xD6\x9A"
. "\x85\x56\x95\xBC\xE0\x03\x3D\x85\xED\x15"
. "\x79\x7A\x3B\x9A\x7D\xA3\xC7\xE1\x38\xDE"
. "\xD3\x60\xA1\xBF\x7A\x0D\x46\x26\x52\x1E"
. "\xBF\xD7\x73\x56\x94\x55\x59\xD1\xDA\x47"
. "\xE6\x54\xC1\x22\xEE\x3F\xC4\xB6\x22\xFC"
. "\x95\xF4\x5D\x37\xB4\xD7\x44\xF9\xFC\x96"
. "\x18\xBD\x6E\x8B\x15\x04\xDF\x6D\xD5\xBA"
. "\xB4\xBC\x10\x76\xDD\xFD\xB5\xA3\xB4\xD6"
. "\xA0\x4B\xCB\xFC\x82\x81\xD5\xC5\x7C\xD2"
. "\x5C\x94\x91\xCA\x20\xA6\xCD\x01\x15\xA4"
. "\xBB\xC8\x61\xCA\x40\x40\xC8\xF5\xE2\x7E"
. "\xCD\x84\xC9\x9A\x82\x4C\x1C\x58\x12\x98"
. "\x2C\x6E\x2D\xBC\x39\x4C\x64\x08\x4C\x78"
. "\xAC\x09\x41\x0E\xD2\x81\x4E\x9C\x78\x32"
. "\x1C\x46\xB5\xE4\xDF\x38\x31\xFB\x8F\x43"
. "\x94\xBB\xB0\xC0\x78\xE9\x0E\xDB\xF1\x5A"
. "\x55\x9E\x62\x96\xAC\x36\x18\xF9\xD1\x8F"
. "\x2D\xEC\xD5\xE1\xD2\xB6\x1B\x04\xB3\xA9"
. "\x46\x48\x65\xF6\x0A\xDD\xE1\x18\xBA\xD4"
. "\x71\x10\x73\xD3\xA5\x21\x0A\xBD\x1C\xDB",
'6c1033648fc11250ad22006398cd1bdc',
],
];
}
#[DataProvider('getStringDataProvider')]
public function testStrings(string $code): void
{
$barcode = $this->getTestObject();
$type = $barcode->getBarcodeObj('PDF417', $code);
$this->assertNotNull($type); // @phpstan-ignore method.alreadyNarrowedType
}
/**
* @return array<array{string}>
*/
public static function getStringDataProvider()
{
return \Test\TestStrings::$data;
}
}

View File

@@ -0,0 +1,366 @@
<?php
/**
* QrCodeTest.php
*
* @since 2015-02-21
* @category Library
* @package Barcode
* @author Nicola Asuni <info@tecnick.com>
* @copyright 2015-2024 Nicola Asuni - Tecnick.com LTD
* @license http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
* @link https://github.com/tecnickcom/tc-lib-barcode
*
* This file is part of tc-lib-barcode software library.
*/
namespace Test\Square;
use Test\TestUtil;
use PHPUnit\Framework\Attributes\DataProvider;
/**
* QR-Code Barcode class test
*
* @since 2015-02-21
* @category Library
* @package Barcode
* @author Nicola Asuni <info@tecnick.com>
* @copyright 2015-2024 Nicola Asuni - Tecnick.com LTD
* @license http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
* @link https://github.com/tecnickcom/tc-lib-barcode
*/
class QrCodeTest extends TestUtil
{
protected function getTestObject(): \Com\Tecnick\Barcode\Barcode
{
return new \Com\Tecnick\Barcode\Barcode();
}
public function testInvalidInput(): void
{
$this->bcExpectException('\\' . \Com\Tecnick\Barcode\Exception::class);
$barcode = $this->getTestObject();
$barcode->getBarcodeObj('QRCODE', '');
}
public function testCapacityException(): void
{
$this->bcExpectException('\\' . \Com\Tecnick\Barcode\Exception::class);
$barcode = $this->getTestObject();
$code = str_pad('', 4000, 'iVoo{[O17n~>(FXC9{*t1P532}l7E{7/R\' ObO`y?`9G(qjBmu7 GM3ZK!qp|)!P1" sRanqC(:Ky');
$barcode->getBarcodeObj('QRCODE', $code);
}
#[DataProvider('getGridDataProvider')]
public function testGetGrid(string $options, string $code, mixed $expected): void
{
$barcode = $this->getTestObject();
$type = $barcode->getBarcodeObj('QRCODE' . $options, $code);
$grid = $type->getGrid();
$this->assertEquals($expected, md5($grid));
}
/**
* @return array<array{string, string, string}>
*/
public static function getGridDataProvider(): array
{
return [
[
'',
'0123456789',
'89e599523008751db7eef3b5befc37ed',
],
[
',L',
'0123456789',
'89e599523008751db7eef3b5befc37ed',
],
[
',H,NM',
'0123456789',
'3c4ecb6cc99b7843de8d2d3274a43d9e',
],
[
',L,8B,0,0',
'123aeiouàèìòù',
'1622068066c77d3e6ea0a3ad420d105c',
],
[
',H,KJ,0,0',
'ぎポ亊',
'1d429dd6a1627f6dc1620b3f56862d52',
],
[
',H,ST,0,0',
'ABCdef0123',
'3a8260f504bca8de8f55a7b3776080bb',
],
[
'',
str_pad('', 350, '0123456789'),
'3cca7eb0f61bc39c5a79d7eb3e23a409',
],
[
'',
'abcdefghijklmnopqrstuvwxyz01234567890123456789',
'9c489cd7ded55a82b2d7e3589afbd7d0',
],
[
',H,AN,40,1,0,1,2',
'abcdefghijklmnopqrstuvwxyz01234567890123456789',
'5ba221be81b269ab1f105b07bf49b372',
],
[
'',
"\x9E\x13\xC0\x08\x47\x71\x6B\xFC\xAB\xA9"
. "\x72\x72\xCC\x97\xB7\x14\xB4\x1A\x49\x4C"
. "\xC1\x10\x45\xD4\xE8\x5A\xF8\x73\x09\x68"
. "\x95\xA7\x7B\x56\xAF\xC1\xC7\x1B\xBE\x73"
. "\xC4\x32\xE4\x92\xC9\x9C\xA5\x7E\xB6\xED"
. "\xC9\x79\xFD\x0F\x4E\xE7\x69\x48\x5C\x72"
. "\xAF\xF0\x1A\x2B\x47\xC8\xEC\x0F\xE3\xAC"
. "\x81\xA9\xDD\x67\x3C\xA7\x05\xE1\x27\xBA"
. "\xD0\xF0\x34\xCE\xFE\x82\xB7\x69\xC9\x14"
. "\xDA\x7A\x05\xF4\xA5\x4C\xBD\x92\x5B\xA2"
. "\x3F\xDC\x4C\x1E\x44\x87\xC4\x49\x6A\xEB"
. "\x05\x3B\xDC\x38\x0B\xDC\xBA\xC2\x46\x84"
. "\xD5\x22\xFE\xDA\x17\xA4\x28\xD4\x38\x82"
. "\x77\x76\x5F\xC2\x94\xA3\x4B\x5A\xEC\xB4"
. "\x46\xF0\xEF\x23\x2A\xFA\xFE\xE3\xBD\x46"
. "\x69\x94\x67\x68\x70\x7E\x0D\x97\x53\x44"
. "\x1B\xC9\xBA\x79\x8D\x50\x1E\xD7\xA9\x0C"
. "\x8D\xEE\xFB\x7E\x12\x27\x79\x12\x0C\x38"
. "\x58\x74\xCB\xBE\xDC\x3C\x3D\xE9\xD3\x90"
. "\x2F\xED\x5A\xE8\x68\xE6\x39\x86\xBF\xE2"
. "\x91\x4D\xD1\x8E\xCA\xE3\xB4\x45\xF5\xBF"
. "\x7C\x4E\x35\x49\x0D\x12\x85\x4A\xFA\x59"
. "\xD9\x2A\x47\x35\x14\xAF\x1D\x4D\x36\xDB"
. "\x30\xC6\x29\x03\x55\xF3\xE5\x0B\x39\xDB"
. "\xC9\xB4\x2B\xFD\xFC\x38\x11\x83\x81\x0C"
. "\xDB\x5C\x36\x24\x91\x4A\xD2\xAD\x97\x09"
. "\x89\xC6\xCF\xB2\xC9\x26\xA6\xAF\x30\xDF"
. "\x8C\xF9\x95\xB6\xF8\x93\xED\x0A\x17\x70"
. "\x16\xF1\xCC\x4C\x17\x5E\x96\xE8\x0D\x2E"
. "\xF1\x95\xF3\xC1\x49\xBE\xE6\xEF\x6E\x18",
'd1977c58334ea034ef4201fe95ee4d2b',
],
[
'',
"\x9E\xC6\x2D\x5E\xE7\x53\x3C\x2D\x68\x3E"
. "\x7A\x58\xF5\x08\x15\x4C\xAA\xFA\x57\x06"
. "\xA2\x20\x2B\xD0\x11\x60\x8B\x2B\xC0\x0F"
. "\x39\x5F\xD4\x66\xBD\xBC\xB8\xF9\xE9\x22"
. "\x38\x65\x7A\x2F\x6C\x8E\x7A\x18\x89\xD1"
. "\x1E\x2D\xF0\x48\xFD\x02\xA7\x8A\x2C\x69"
. "\x98\x65\xC8\x6D\xCA\x87\x2B\x84\x81\x15"
. "\xA5\xB9\x79\x20\xE7\xE5\xAE\x63\xFC\x39"
. "\x35\x1B\x65\x26\x63\x64\x27\x0C\xED\x53"
. "\x74\x86\xB7\x3E\xF3\x83\xC4\x1F\x08\x46"
. "\x34\xAC\xFE\xAD\xCC\xE7\x93\x7C\x4B\x91"
. "\xB4\x80\xAC\x1B\xA5\x10\x7E\xCC\x1B\x6D"
. "\x21\x8F\xF2\xD8\xCC\xE7\x5C\x91\x07\x63"
. "\xD6\x3B\x11\xD6\xE7\xDD\xBE\x7C\x5A\x0B"
. "\x0E\x10\x8A\xBA\x2B\x31\xC9\xA8\xFC\xE3"
. "\x16\x1F\x74\x0A\xF6\x41\xF0\x53\xD1\xF7"
. "\xB6\xA9\x34\xC7\x81\x1D\xA5\x41\x98\x01"
. "\x4B\xA6\x11\xD4\x61\x3B\x07\x2C\xE3\x04"
. "\x11\xF9\x23\x84\x05\x1A\xC4\xF4\x6C\x97"
. "\xED\x24\x42\x22\xEA\xC2\x3F\x91\x04\xD6"
. "\x92\x4F\x7E\xA2\x24\xDE\xDC\x2A\x0C\xC1"
. "\x2E\x1C\xBB\x50\x9F\xBF\x6A\x64\xB5\xD5"
. "\xFB\xA4\xF9\x3E\xC6\xE4\x02\x06\x77\x05"
. "\xDC\x0A\x53\x5B\xAB\x77\x3B\x89\xA1\x46"
. "\x4B\xCF\x61\x08\x21\x01\xC6\x8A\x65\x7D"
. "\x61\x61\x22\x5B\x9F\xE7\x41\xA0\xED\xB7"
. "\xA5\xCA\xC0\xF8\x26\x6C\x70\x60\xF5\x13"
. "\xA6\x41\xE1\x08\x48\x04\x09\x10\x8D\x6D"
. "\x8D\xED\xCE\xAE\x49\x6F\x97\x8A\x10\x85"
. "\x42\xB4\x51\x03\xAD\x76\x6F\x1F\xD6\x65"
. "\x31\x7D\xA6\x14\x85\xEE\x17\x8D\xFE\xA3"
. "\xFA\x8C\x92\xCA\x3C\xDB\x3A\xD3\x66\x49"
. "\x5A\xA7\xFD\xAA\xAA\xAC\x22\x1B\xCA\xF7"
. "\x80\xFB\x75\x27\x11\xF9\x17\x27\x88\x16"
. "\xCA\x83\xA2\x5E\x4E\xDE\x3A\x88\xB2\x9F"
. "\xD1\x0E\x48\xCF\xB7\xF2\x7C\xD9\x0E\x48"
. "\xD1\x8D\x45\x48\xB4\x55\x43\xCA\x7C\xCA"
. "\xE0\x48\x4F\x83\xA5\x9D\x63\xDF\x26\x17"
. "\x80\xF6\x24\xC7\xC7\xDB\xBB\x45\xB5\xC8"
. "\x8C\x88\x56\xD0\xCF\x0B\x27\x13\xD5\xA2"
. "\xDD\xB6\xE9\x2E\x3B\x90\xCA\x9D\x70\xF0"
. "\xB3\xF0\xE7\xD7\xB9\xB0\xB4\x75\xF4\x6A"
. "\x3E\x81\xF2\x94\x53\xC2\x9F\x79\xD5\x75"
. "\x1D\xB3\x2C\x08\xE0\x67\x97\xAC\x05\x09"
. "\x9D\xB8\xF8\x86\x91\xB3\x37\x46\x29\x2C"
. "\xB0\x66\xAD\xA3\xFA\x02\x67\x9A\x7B\x3D"
. "\x10\x97\xF0\x3C\x9F\xD2\xA2\x37\x7F\xA7"
. "\x40\x1E\x61\x3A\xA3\xF1\xEC\xDA\x39\x16"
. "\x08\xE9\x7C\xB4\x8D\x77\xB6\xF3\x12\x33"
. "\x32\x22\xC9\x23\x5D\x6A\xF4\x01\xA1\x74"
. "\xA7\xE0\x92\x09\x1C\x36\xFA\x0A\x11\x35"
. "\x20\x18\x1F\x9B\xCC\xAC\x14\x84\xA0\x26"
. "\xB6\xD1\x48\x81\xF3\xA4\xEA\xE9\xA4\x8C"
. "\x5F\x4D\x6E\xF0\x56\x89\x27\x51\x92\x38"
. "\x86\xB1\x50\xA4\x4E\x1E\x51\x62\xA1\xF1"
. "\x87\x58\xC4\xCE\xD8\xB9\x74\xC3\xA3\x1A"
. "\x51\x03\x66\xBE\xF3\xBB\x48\x1C\x0E\xDA"
. "\x53\x93\x8D\xA3\x39\xDA\xC0\x89\x3D\x62"
. "\x7C\xC4\xBA\x41\x94\x93\xF9\x09\x58\x9D"
. "\x22\xA8\xA0\x87\x67\x94\x44\xAF\xB0\x51"
. "\x8A\x04\xE4\x19\xA7\x1E\xF2\x68\xA7\x31"
. "\xCA\x24\xF4\x85\x64\x8A\x1A\x5E\x92\x71"
. "\xFB\xB4\x1B\x9D\x3D\x81\x33\x80\x32\xE2"
. "\xD1\xBC\xE6\xB6\xD4\x8E\xD4\xC8\xF6\x7C"
. "\xF8\xC1\x9F\xEE\x47\x04\x79\x60\x62\x0D"
. "\xD1\x5F\xC1\xEB\xFB\xFD\x6E\x2F\x7F\x9F"
. "\x12\x51\x5D\xF7\x09\x32\x87\xDC\xF9\x7E"
. "\x5A\xF3\x40\xF8\xE3\x87\xFC\x5E\xE7\x60"
. "\x6A\xBA\xBE\x2C\xA6\xBB\x2B\x15\xE9\xA9"
. "\xB4\xFB\xFA\x12\xF4\x05\x44\x7C\xE1\x3F"
. "\xFA\x3C\x34\x3B\x35\x18\xC2\x33\x75\xAB"
. "\x92\xDF\x66\x52\x0C\x0D\x0E\x36\x22\xF6"
. "\xDF\xD6\xF3\xDA\xE8\xE8\xDE\x2D\x66\xC0"
. "\x6C\x61\xFC\x9F\x9C\x32\xB7\x60\x65\x2D"
. "\x0C\xF6\x0D\x71\x49\x19\x7E\x57\x4F\xA0"
. "\x4E\x2F\x77\x43\x0B\x60\x2D\xE9\x8D\x92"
. "\xAB\xF9\xF2\xA8\x99\x8F\xDA\x51\xEE\x40"
. "\x7E\xFA\x37\x8B\x6D\x80\xA3\xEA\xD6\xF2"
. "\x8B\x26\x22\x04\x68\x2D\x64\x94\x17\xF1"
. "\x28\xC2\xEB\x1B\x6B\x85\xAA\x46\xD6\x9A"
. "\x85\x56\x95\xBC\xE0\x03\x3D\x85\xED\x15"
. "\x79\x7A\x3B\x9A\x7D\xA3\xC7\xE1\x38\xDE"
. "\xD3\x60\xA1\xBF\x7A\x0D\x46\x26\x52\x1E"
. "\xBF\xD7\x73\x56\x94\x55\x59\xD1\xDA\x47"
. "\xE6\x54\xC1\x22\xEE\x3F\xC4\xB6\x22\xFC"
. "\x95\xF4\x5D\x37\xB4\xD7\x44\xF9\xFC\x96"
. "\x18\xBD\x6E\x8B\x15\x04\xDF\x6D\xD5\xBA"
. "\xB4\xBC\x10\x76\xDD\xFD\xB5\xA3\xB4\xD6"
. "\xA0\x4B\xCB\xFC\x82\x81\xD5\xC5\x7C\xD2"
. "\x5C\x94\x91\xCA\x20\xA6\xCD\x01\x15\xA4"
. "\xBB\xC8\x61\xCA\x40\x40\xC8\xF5\xE2\x7E"
. "\xCD\x84\xC9\x9A\x82\x4C\x1C\x58\x12\x98"
. "\x2C\x6E\x2D\xBC\x39\x4C\x64\x08\x4C\x78"
. "\xAC\x09\x41\x0E\xD2\x81\x4E\x9C\x78\x32"
. "\x1C\x46\xB5\xE4\xDF\x38\x31\xFB\x8F\x43"
. "\x94\xBB\xB0\xC0\x78\xE9\x0E\xDB\xF1\x5A"
. "\x55\x9E\x62\x96\xAC\x36\x18\xF9\xD1\x8F"
. "\x2D\xEC\xD5\xE1\xD2\xB6\x1B\x04\xB3\xA9"
. "\x46\x48\x65\xF6\x0A\xDD\xE1\x18\xBA\xD4"
. "\x71\x10\x73\xD3\xA5\x21\x0A\xBD\x1C\xDB",
'f4bf6b42c6964562a3a91e054fc8ec51'],
[
',H,NM',
"\x1A\x97\xE0\xC1\x47\x20\xA2\xBF\x1E\x62"
. "\x52\x0D\x99\x91\x45\x03\x7B\xE3\x32\xC8"
. "\x18\xEA\x80\x51\xE8\x70\x93\x2D\x19\x08"
. "\x26\x33\x9E\x07\xF3\xE5\x27\x96\xA5\x45"
. "\xF7\xF6\x51\x92\x89\x95\x94\x06\x7A\xC5",
'4f6fd3799489b48fa07e1a7aef0561fc',
],
[
',H,AN',
"\xCD\x92\xB0\x4F\xE2\x9A\xBF\x76\xC6\xD7"
. "\x7E\xEC\x0C\x1D\xF3\xFE\x04\x1B\x96\xA8"
. "\x60\x8E\xA0\xB0\x22\x2A\x47\xB6\x30\xC0"
. "\x7D\xFC\x54\x2E\x4D\x37\xC8\x0D\xAD\x90"
. "\xE3\x2C\x7D\xEE\x49\x71\xEE\x4C\x8C\x85",
'55cd590ed76d12591c6df3b673904530',
],
[
',H,KJ',
"\xF4\xEB\x15\x95\x9D\x36\xBF\xE3\xEB\xEE"
. "\xA5\x69\xEC\xF8\x97\x3A\x31\x61\x46\xDD"
. "\xF0\x2B\x0B\x6F\x1B\x53\xDF\x0A\x9F\x6D"
. "\x8E\x94\x59\xA3\x2A\xF6\xD8\xE9\xDA\xC5"
. "\xD8\x81\x30\xC5\x7A\xC7\x01\xAA\x29\x46",
'92e82c296965d97d35ab7168ece11dd0',
],
[
',H,8B',
"\x89\x1B\x70\x93\x89\x8A\xE6\x6A\x94\x86"
. "\xD6\x24\x1B\x31\xC6\x45\x28\xA0\x2F\x04"
. "\x67\x09\x85\x96\xCE\xFE\x5F\xCE\xAA\x88"
. "\x16\x35\xA2\x86\xC7\x2D\x12\xAE\x96\xA5"
. "\x36\x6D\xC9\x51\x9E\x90\x96\xC6\x32\xC4",
'68799fdb9685b5e2f258245833006425',
],
[
',H,ST',
"\xC9\x98\xCD\x4F\x2F\x9D\x4F\x8E\x6C\xF9"
. "\x17\x82\x2F\xB9\x09\xF6\xE5\x1A\xA6\x7C"
. "\xBF\xDB\xE9\x89\x2D\x89\x1B\xC2\x50\x4C"
. "\x88\x1B\xE3\x57\x6A\x14\xF3\xB8\xA1\x61"
. "\xB3\xB8\xE2\xE2\x72\xEB\xD9\x58\x06\x81",
'6fb328c418ea40c6c94277f420ba9357',
],
[
'',
'w(fa`nC]e=}OY(K^ 3xN1Vz1g<F=P%!H-h*nWNL>kKnFS;&TN '
. '$`W~r?;9\\l?]5MF@<~oh>\\4-#hH*=w*AYaAL!]f^J&<`Tc!'
. 'pcpZ"Nn0RWY\\uQf8+HZXJ8?*bFGDz+Eln7Gqe6"8n[te.\\}'
. ':&YrQq3[UY#yU.@B}Xio>!rWoNMV]*Uw0/kb!~>WYAR0PrROK'
. '=?j>3B/boe@z;8,K$nM$-%]OWm KAOv^oa}#%-ets&p/?|[Dk'
. ')Hy.\'IfuI27y*viktmq#Tfv[X\'zUb?Bkh=zofbe1t|+~tuk'
. 'id]l9Edt}kpTO0w<x57h|yO.oM:oB1[-u:z/`_%_Lu4{\',9 '
. 'BPi?K:M;gh,+yh8p#3!ds&D@|X=$eV%((oGS*uor^{}Ye6JhJ'
. 'LM>Sr^PK|T2SZ:[Jb0UX!I8}Grc^>L)jzG>n\'n:%DMX g5KK'
. 'F!$GJ=Er0*QOVZ:R#YA+H\\0m*inr :>G;Cof`5Yq@,Avg\\J'
. 'j6lv_J(MUq<IrWg:s,*Zl@5_`B"X*^$utqlT<t#rg@<[w%uk1'
. '!G~A]^# `\\*?` 5RmiocmcL. (&&~r7 :6BwuFwW##wc#-7q'
. 'w(Uek#sl+zr*m*+)AN!8tyow|h\\!vssn|IUiMJVXEJc4To>v'
. '>?03:!+8ig9`\\-PZW\'D%Qz^wEC,z3JrQj#d&$p>nYXP6f!p'
. '?)5EZ1$RWH_S[+F-vIr|Nc<==tmT\\oF{x\\ASnF\'FnfyKr@'
. 'YijLg91$VOyD%V4KS-(tav;h>+P8VCY0.D]u^nz6?tZDLoo }'
. 'xt_p1I0=zIs?#%MHbD(R?>q4y7ai(ah"WIrir$\'nM{.P![yd'
. ' "7@@*T:A7%IxmKP7?:+CAyp>)B?e<$e><\'_F\\yhs~2ll^>'
. '%~X1Bz+494VYys^`2zhrBEl+9l>&Y}D_|}p@y|T32,m- Ln3H'
. 'W&j|sv6`6=;5bz2alS[i(o{5]*6*xIRPP>NE6d&L#Abe=tG+H'
. '$tQsqgQ{}\\tH0FyNt?eZE2]gtD&jl14p\'fdxO7uMskv$2pS'
. '(19bWLA@BeF-RXBD_*)YY@O\'5;~9NolV!\':YS[yuA@$tyF9'
. 'YPC3*cc2y~13N"!%$(@][{WR>xV4r|MMNp`YUDkPD|cr~ex#m'
. '9`J69}T2Th&R7S")4[_YG0~EtqDZkHI&*t<CrpVHZ\\zr0|{E'
. 'X[ !l~Faqk<]4fd?[!bNr:vMvr@(p=MJyMKfMrH?^e}sLb3)c'
. 'uWV0O%(CF04c]_],,EY~ny^TwR"[e+@[cwl3|uWD&l(dLfqY,'
. 'LXzF7P?iRzO^<,B4yV2o.Vvz^[HFM"Ry[NAr~`]R\\.1x;S.5'
. '*@%9v|4VX]|\'_P";~C/~%mQa{c[77iMB+R["PpY)NV1/(3K('
. 'W[\'\\IY?E={]Uf+wq^Ts/EM9t%J$-]P65,=rUw2{6.Zktedg'
. 'E:\\U`+nU09Z>w+T.8r!mk4j"CEn9+S!Qn]\'Ohu%y0`9)lm7'
. '%a9sMN^Oq$?,0r.ablh2U_8PoxixeX1k;K_hy>9lBXxRL\'5/'
. 's~BJ^Z{OSfI:?[&[\'eD!$^mG8gzen1uc08/or+@Fria2FgnM'
. 'N3NRr=z+%uqt\'gY8 h(rtI:g4{zZdi(3}Wfpta|zXoo`WIxX'
. '3"L)Kgp_cl:IVB\\UyCGo&Ej^5[?m&8F::rCfZ4F?"`hX$F/~'
. 'iVoo{[O17n~>(FXC9{*t1P532}l7E{7/R\' ObO`y?`9G(qjB'
. 'mu7 GM3ZK!qp|)!P1" sRanqC(:Ky&mh{&hDS|~ }qqzzrL,u'
. 'L!H/o:RwU}r[l\\XrE|FB{FAm9=i-iv#7wKFgfx`<wTxd1QWV'
. 'N~yKF<9_Y$lDzo[r<#[${=Atq:Y#k2Z;1UfXq!8K%&p vMs3P'
. 'O7MlYB^s{b`/=|@rcxde21j9#k0P`C!0[N}5p]*m@k|^h>RM8'
. '83KI~dMkt}L9 ]uN[,@:6/[",:jKl8c%L/OKs}7i{c#{BxK}%'
. 'k9<zt>(0*S}C7#oGS;<QS&N8)KZ"vY(crD_hchxm<v1Tz!{N='
. '9!p?P*H{dKs>TW2x8z]!sK=k]rf',
'83747986cf0df320b915587609232076',
],
];
}
#[DataProvider('getStringDataProvider')]
public function testStrings(string $code): void
{
$barcode = $this->getTestObject();
$type = $barcode->getBarcodeObj('QRCODE,H,NL,0,1,3,1', $code);
$this->assertNotNull($type); // @phpstan-ignore method.alreadyNarrowedType
}
/**
* @return array<array{string}>
*/
public static function getStringDataProvider()
{
return \Test\TestStrings::$data;
}
}

View File

@@ -0,0 +1,47 @@
<?php
/**
* RawTest.php
*
* @since 2015-02-21
* @category Library
* @package Barcode
* @author Nicola Asuni <info@tecnick.com>
* @copyright 2015-2024 Nicola Asuni - Tecnick.com LTD
* @license http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
* @link https://github.com/tecnickcom/tc-lib-barcode
*
* This file is part of tc-lib-barcode software library.
*/
namespace Test\Square;
use PHPUnit\Framework\TestCase;
/**
* Raw Barcode class test
*
* @since 2015-02-21
* @category Library
* @package Barcode
* @author Nicola Asuni <info@tecnick.com>
* @copyright 2015-2024 Nicola Asuni - Tecnick.com LTD
* @license http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
* @link https://github.com/tecnickcom/tc-lib-barcode
*/
class RawTest extends TestCase
{
protected function getTestObject(): \Com\Tecnick\Barcode\Barcode
{
return new \Com\Tecnick\Barcode\Barcode();
}
public function testGetGrid(): void
{
$barcode = $this->getTestObject();
$type = $barcode->getBarcodeObj('SRAW', '0101,1010,1100,0011');
$grid = $type->getGrid();
$expected = "0101\n1010\n1100\n0011\n";
$this->assertEquals($expected, $grid);
}
}