Code Duplication    Length = 18-18 lines in 3 locations

src/BitArray/BitArray.php 3 locations

@@ 535-552 (lines=18) @@
532
	 *
533
	 * @since   1.0.0
534
	 */
535
	public function applyOr(BitArray $bits)
536
	{
537
		if ($this->size == $bits->size)
538
		{
539
			$length = strlen($this->data);
540
541
			for ($i = 0; $i < $length; $i++)
542
			{
543
				$this->data[$i] = chr(ord($this->data[$i]) | ord($bits->data[$i]));
544
			}
545
546
			return $this;
547
		}
548
		else
549
		{
550
			throw new \InvalidArgumentException('Argument must be of equal size');
551
		}
552
	}
553
554
	/**
555
	 * And with an another bit array
@@ 565-582 (lines=18) @@
562
	 *
563
	 * @since   1.0.0
564
	 */
565
	public function applyAnd(BitArray $bits)
566
	{
567
		if ($this->size == $bits->size)
568
		{
569
			$length = strlen($this->data);
570
571
			for ($i = 0; $i < $length; $i++)
572
			{
573
				$this->data[$i] = chr(ord($this->data[$i]) & ord($bits->data[$i]));
574
			}
575
576
			return $this;
577
		}
578
		else
579
		{
580
			throw new \InvalidArgumentException('Argument must be of equal size');
581
		}
582
	}
583
584
	/**
585
	 * Xor with an another bit array
@@ 595-612 (lines=18) @@
592
	 *
593
	 * @since   1.0.0
594
	 */
595
	public function applyXor(BitArray $bits)
596
	{
597
		if ($this->size == $bits->size)
598
		{
599
			$length = strlen($this->data);
600
601
			for ($i = 0; $i < $length; $i++)
602
			{
603
				$this->data[$i] = chr(ord($this->data[$i]) ^ ord($bits->data[$i]));
604
			}
605
606
			return $this;
607
		}
608
		else
609
		{
610
			throw new \InvalidArgumentException('Argument must be of equal size');
611
		}
612
	}
613
}
614