function testRegisterWeightedGenerator() { $a = new Engine\FakeEngine([]); $b = new Engine\FakeEngine([]); $out = [spl_object_hash($a) => 0, spl_object_hash($b) => 0]; $engineSet = new EngineSet(); $engineSet->registerWeighted('a', 4, $a); $engineSet->registerWeighted('b', 1, $b); $engines = $engineSet->getGenerator(); for ($i = 0; $i < 10; ++$i) { list($set, $engine) = $engines->current(); $engines->next(); $out[spl_object_hash($engine)]++; } $this->assertEquals([spl_object_hash($a) => 8, spl_object_hash($b) => 2], $out); }