public function run($options = [])
{
$defaults = ['reporters' => null, 'autoclear' => [], 'ff' => 0];
$options += $defaults;
if ($this->_locked) {
throw new Exception('Method not allowed in this context.');
}
$this->_locked = true;
$this->_reporters = $options['reporters'];
$this->_autoclear = (array) $options['autoclear'];
$this->_ff = $options['ff'];
$this->report('start', ['total' => $this->enabled()], true);
$success = $this->passed();
$this->summary()->memoryUsage(memory_get_peak_usage());
$this->report('end', $this->summary(), true);
$this->_locked = false;
return $success;
}