Code Duplication    Length = 26-29 lines in 2 locations

src/BitArray/BitArray.php 2 locations

@@ 464-492 (lines=29) @@
461
	 *
462
	 * @since   1.0.0
463
	 */
464
	public static function fromTraversable($traversable)
465
	{
466
		$bits = new BitArray(count($traversable));
467
		$offset = 0;
468
		$ord = 0;
469
470
		foreach ($traversable as $value)
471
		{
472
			if ($value)
473
			{
474
				$ord |= 1 << $offset % 8;
475
			}
476
477
			if ($offset % 8 === 7)
478
			{
479
				$bits->data[(int) ($offset / 8)] = chr($ord);
480
				$ord = 0;
481
			}
482
483
			$offset++;
484
		}
485
486
		if ($offset % 8 !== 0)
487
		{
488
			$bits->data[(int) ($offset / 8)] = chr($ord);
489
		}
490
491
		return $bits;
492
	}
493
494
	/**
495
	 * Create a new BitArray from a bit string
@@ 503-528 (lines=26) @@
500
	 *
501
	 * @since   1.0.0
502
	 */
503
	public static function fromString($string)
504
	{
505
		$bits = new BitArray(strlen($string));
506
		$ord = 0;
507
508
		for ($offset = 0; $offset < $bits->size; $offset++)
509
		{
510
			if ($string[$offset] !== '0')
511
			{
512
				$ord |= 1 << $offset % 8;
513
			}
514
515
			if ($offset % 8 === 7)
516
			{
517
				$bits->data[(int) ($offset / 8)] = chr($ord);
518
				$ord = 0;
519
			}
520
		}
521
522
		if ($offset % 8 !== 0)
523
		{
524
			$bits->data[(int) ($offset / 8)] = chr($ord);
525
		}
526
527
		return $bits;
528
	}
529
530
	/**
531
	 * Create a new BitArray from json