示例#1
0
 public function testApplyMaskPenaltyRule1()
 {
     $matrix = new ByteMatrix(4, 1);
     $matrix->set(0, 0, 0);
     $matrix->set(1, 0, 0);
     $matrix->set(2, 0, 0);
     $matrix->set(3, 0, 0);
     $this->assertEquals(0, MaskUtil::applyMaskPenaltyRule1($matrix));
     // Horizontal
     $matrix = new ByteMatrix(6, 1);
     $matrix->set(0, 0, 0);
     $matrix->set(1, 0, 0);
     $matrix->set(2, 0, 0);
     $matrix->set(3, 0, 0);
     $matrix->set(4, 0, 0);
     $matrix->set(5, 0, 1);
     $this->assertEquals(3, MaskUtil::applyMaskPenaltyRule1($matrix));
     $matrix->set(5, 0, 0);
     $this->assertEquals(4, MaskUtil::applyMaskPenaltyRule1($matrix));
     // Vertical
     $matrix = new ByteMatrix(1, 6);
     $matrix->set(0, 0, 0);
     $matrix->set(0, 1, 0);
     $matrix->set(0, 2, 0);
     $matrix->set(0, 3, 0);
     $matrix->set(0, 4, 0);
     $matrix->set(0, 5, 1);
     $this->assertEquals(3, MaskUtil::applyMaskPenaltyRule1($matrix));
     $matrix->set(0, 5, 0);
     $this->assertEquals(4, MaskUtil::applyMaskPenaltyRule1($matrix));
 }
示例#2
0
 /**
  * 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);
 }