コード例 #1
0
ファイル: Encoder.php プロジェクト: tccLaravel/learn
 /**
  * Calculates the mask penalty for a matrix.
  *
  * @param  ByteMatrix $matrix
  * @return integer
  */
 protected static function calculateMaskPenalty(ByteMatrix $matrix)
 {
     return MaskUtil::applyMaskPenaltyRule1($matrix) + MaskUtil::applyMaskPenaltyRule2($matrix) + MaskUtil::applyMaskPenaltyRule3($matrix) + MaskUtil::applyMaskPenaltyRule4($matrix);
 }
コード例 #2
0
ファイル: MaskUtilTest.php プロジェクト: jumong/BaconQrCode
 public function testApplyMaskPenaltyRule4()
 {
     // Dark cell ratio = 0%
     $matrix = new ByteMatrix(1, 1);
     $matrix->set(0, 0, 0);
     $this->assertEquals(100, MaskUtil::applyMaskPenaltyRule4($matrix));
     // Dark cell ratio = 5%
     $matrix = new ByteMatrix(2, 1);
     $matrix->set(0, 0, 0);
     $matrix->set(0, 0, 1);
     $this->assertEquals(0, MaskUtil::applyMaskPenaltyRule4($matrix));
     // Dark cell ratio = 66.67%
     $matrix = new ByteMatrix(6, 1);
     $matrix->set(0, 0, 0);
     $matrix->set(1, 0, 1);
     $matrix->set(2, 0, 1);
     $matrix->set(3, 0, 1);
     $matrix->set(4, 0, 1);
     $matrix->set(5, 0, 0);
     $this->assertEquals(30, MaskUtil::applyMaskPenaltyRule4($matrix));
 }