/**
  * @param $expected
  * @return ByteCollection
  */
 private function createCollection($expected)
 {
     $collection = new ByteCollection();
     array_map(function ($unit) use($collection) {
         $collection->add($unit);
     }, $expected);
     return $collection;
 }
 /**
  * @param Bytes $bytes
  * @return ByteCollection
  */
 public static function allocateBytes(Bytes $bytes)
 {
     $byteCollection = new ByteCollection();
     while ($bytes->numberOfBytes() !== 0) {
         $largestPossible = self::findLargestUnitOfMeasurementPossible($bytes);
         $byteCollection->add($largestPossible);
         $bytes = $bytes->subtract($largestPossible->bytes());
     }
     return $byteCollection;
 }