/** * Returns an infinite, traversable sequence that exponentially grows by given percentage * * @param integer $start * @param integer $percentage Integer between 1 and 100 * @return ExponentialSequence * @throws InvalidArgumentException */ function sequence_exponential($start, $percentage) { InvalidArgumentException::assertIntegerGreaterThanOrEqual($start, 1, __METHOD__, 1); InvalidArgumentException::assertIntegerGreaterThanOrEqual($percentage, 1, __METHOD__, 2); InvalidArgumentException::assertIntegerLessThanOrEqual($percentage, 100, __METHOD__, 2); return new ExponentialSequence($start, $percentage); }
public function __construct($start, $percentage) { InvalidArgumentException::assertIntegerGreaterThanOrEqual($start, 1, __METHOD__, 1); InvalidArgumentException::assertIntegerGreaterThanOrEqual($percentage, 1, __METHOD__, 2); InvalidArgumentException::assertIntegerLessThanOrEqual($percentage, 100, __METHOD__, 2); $this->start = $start; $this->percentage = $percentage; }