:octocat: extract QRMatrix::getBooleanMatrix() from QRMatrix::getMatrix() to remove type ambiguity

This commit is contained in:
smiley
2025-04-01 12:43:05 +02:00
parent 4a137677f0
commit 0ef7bc7bf2
3 changed files with 15 additions and 11 deletions
+1 -1
View File
@@ -124,7 +124,7 @@ final class MaskPattern{
foreach(self::PATTERNS as $pattern){
$mp = new self($pattern);
$matrix = (clone $QRMatrix)->setFormatInfo($mp)->mask($mp)->getMatrix(true);
$matrix = (clone $QRMatrix)->setFormatInfo($mp)->mask($mp)->getBooleanMatrix();
$penalty = 0;
for($level = 1; $level <= 4; $level++){
+11 -7
View File
@@ -174,22 +174,26 @@ class QRMatrix{
}
/**
* Returns the data matrix, returns a pure boolean representation if $boolean is set to true
* Returns the data matrix
*
* @return int[][]
*/
public function getMatrix(bool|null $boolean = null):array{
if($boolean !== true){
return $this->matrix;
}
public function getMatrix():array{
return $this->matrix;
}
/**
* Returns a boolean representation of the data matrix
*
* @return bool[][]
*/
public function getBooleanMatrix():array{
$matrix = $this->matrix;
foreach($matrix as &$row){
$row = array_map($this->isDark(...), $row);
}
/** @var bool[][] $matrix (phpstan hates this otherwise) */
return $matrix;
}
+3 -3
View File
@@ -42,7 +42,7 @@ final class QRMatrixTest extends TestCase{
* Tests if size() returns the actual matrix size/count
*/
public function testGetSize():void{
$this::assertCount($this->matrix->getSize(), $this->matrix->getMatrix(true));
$this::assertCount($this->matrix->getSize(), $this->matrix->getBooleanMatrix());
}
/**
@@ -255,8 +255,8 @@ final class QRMatrixTest extends TestCase{
$s = ($size + 2 * $quietZoneSize);
$this::assertCount($s, $matrix->getMatrix(true));
$this::assertCount($s, $matrix->getMatrix(true)[($size - 1)]);
$this::assertCount($s, $matrix->getBooleanMatrix());
$this::assertCount($s, $matrix->getBooleanMatrix()[($size - 1)]);
$size = $matrix->getSize();