public function load(Constraint $constraint)
{
$rows = $this->repository->getIterationRows($constraint);
$context = new \ArrayObject([self::BENCHMARKS => [], self::SUBJECTS => [], self::VARIANTS => [], self::SUITES => []]);
foreach ($rows as $row) {
$suite = $this->getSuite($context, $row);
$benchmark = $this->getBenchmark($context, $suite, $row);
$subject = $this->getSubject($context, $benchmark, $row);
$variant = $this->getVariant($context, $subject, $row);
$iteration = new Iteration(0, $variant, [new TimeResult((int) $row['iteration.time']), new MemoryResult((int) $row['iteration.memory'], 0, 0)]);
$variant->addIteration($iteration);
}
foreach ($context[self::SUITES] as $suite) {
foreach ($suite->getVariants() as $variant) {
$variant->computeStats();
}
}
return new SuiteCollection($context[self::SUITES]);
}