/** * @param Range[] $ranges * @param string $format * @return Range */ public static function merge(array $ranges, $format = null) { $sum = new Range(0, 0, $format); foreach ($ranges as $range) { $sum->setMin(max($sum->getMin(), $range->getMin())); $sum->setMax(max($sum->getMax(), $range->getMax())); } return $sum; }
/** * @covers ::__construct * @covers ::getMin * @covers ::setMin * @covers ::getMax * @covers ::setMax * @covers ::getFormat * @covers ::setFormat */ public function testConstruct() { $range = new Range(10, 32, '%s / %s'); $this->assertSame(10, $range->getMin()); $range->setMin(4); $this->assertSame(4, $range->getMin()); $this->assertSame(32, $range->getMax()); $range->setMax(43); $this->assertSame(43, $range->getMax()); $this->assertSame('%s / %s', $range->getFormat()); $range->setFormat('%s \\ %s'); $this->assertSame('%s \\ %s', $range->getFormat()); $range = new Range(); $this->assertSame(0, $range->getMin()); $this->assertSame(0, $range->getMax()); $this->assertSame('%d - %d', $range->getFormat()); }