/**
  * @param IdentityInterface[] $identities
  * @param string $proxyString
  * @param RandomizerInterface|null $randomizer
  * @param RandomCounterIntervalInterface|null $randomCounter
  * @param callable $evaluationFunction . [optional]. Default: null. (Default: true if $event is an instance of CompleteEvent)
  * @param int $maxConsecutiveFails [optional]. Default: 5. (use -1 for infinite fails)
  * @param int $maxTotalFails [optional]. Default: -1. (use -1 for infinite fails)
  * @param TimeIntervalInterface $randomWaitInterval . Default: null.
  * @throws \InvalidArgumentException
  */
 public function __construct(array $identities, $proxyString, RandomizerInterface $randomizer = null, RandomCounterIntervalInterface $randomCounter = null, callable $evaluationFunction = null, $maxConsecutiveFails = null, $maxTotalFails = null, TimeIntervalInterface $randomWaitInterval = null)
 {
     if (count($identities) == 0) {
         throw new \InvalidArgumentException("Number of identities must be greater 0");
     }
     $this->identities = $identities;
     if ($randomizer === null) {
         $randomizer = new SystemRandomizer();
     }
     $this->randomizer = $randomizer;
     if ($randomCounter === null) {
         $randomCounter = new NullRandomCounter();
     }
     $this->randomCounter = $randomCounter;
     parent::__construct($proxyString, $evaluationFunction, $maxConsecutiveFails, $maxTotalFails, $randomWaitInterval);
 }