public function testDetectCoreCountCustomDetector()
 {
     $loop = Factory::create();
     $this->assertSame(128, \WyriHaximus\React\ChildProcess\Pool\detectCoreCount($loop, [Options::DETECTOR => function (LoopInterface $passedLoop) use($loop) {
         $this->assertSame($passedLoop, $loop);
         return 128;
     }]));
 }
 /**
  * @param string $class
  * @param LoopInterface $loop
  * @param array $options
  * @return PromiseInterface
  */
 public static function createFromClass($class, LoopInterface $loop, array $options = [])
 {
     $options = array_merge(self::$defaultOptions, $options);
     return \WyriHaximus\React\ChildProcess\Pool\detectCoreCount($loop, $options)->then(function ($coreCount) use($class, $loop, $options) {
         $options[Options::SIZE] = $coreCount;
         $processes = [];
         for ($i = 0; $i < $coreCount; $i++) {
             $processes[] = Resolver::resolve($i, '%s')->then(function ($command) use($class) {
                 return \React\Promise\resolve(new ClassName($class, ['cmdTemplate' => $command]));
             });
         }
         return \React\Promise\all($processes)->then(function ($processes) use($loop, $options) {
             return \React\Promise\resolve(new Fixed(new ArrayList($processes), $loop, $options));
         });
     });
 }