public function isSubset($sequence)
{
if ($sequence instanceof Set) {
return array_intersect_key($this->array, $sequence->array) === $this->array;
}
args\expects(args\traversable, $sequence);
$size = count($this->array);
$present = array();
foreach ($sequence as $element) {
$elementKey = static::getElementKey($element);
if (isset($this->array[$elementKey]) || array_key_exists($element, $this->array)) {
$present[$element] = true;
if (count($present) === $size) {
return true;
}
}
}
return false;
}