public function testConstantTimes(array $times, array $spread, $nbCollections, $nbIterations, $expectedTimes)
{
$actualTimes = [];
for ($i = 0; $i < $nbCollections; $i++) {
$variant = $this->prophesize(Variant::class);
for ($ii = 0; $ii < $nbIterations; $ii++) {
$iteration = $this->prophesize(Iteration::class);
$iteration->getVariant()->willReturn($variant->reveal());
$iteration->getIndex()->willReturn($ii);
$iteration->setResult(Argument::type(TimeResult::class))->will(function ($args) use(&$actualTimes) {
$actualTimes[] = $args[0]->getNet();
});
$iteration->setResult(Argument::type(MemoryResult::class))->shouldBeCalled();
$this->executor->execute($this->subjectMetadata->reveal(), $iteration->reveal(), new Config('test', ['times' => $times, 'spread' => $spread]));
}
}
$this->assertEquals($expectedTimes, $actualTimes);
}