public function generateTildePrimitives(Version $lbound, array $ubound, array $nrs) { if (count($nrs) == 1) { $upper = Version::fromString($nrs[0] + 1); } else { ++$nrs[1]; $upper = Version::fromString(implode('.', array_slice($nrs, 0, 2))); } return self::between($lbound, $ubound ? Version::highest($upper, Version::fromString(implode('.', $ubound))) : $upper); }
public function testHighestLowest() { $versions = array_map([Version::class, 'fromString'], ['0.1.2', '1.2.3', '2.3.4', '3.4.5', '4.5.6']); $this->assertEquals('0.1.2', Version::lowest($versions)->getOriginalString()); $this->assertEquals('4.5.6', Version::highest($versions)->getOriginalString()); shuffle($versions); $this->assertEquals('0.1.2', Version::lowest($versions)->getOriginalString()); $this->assertEquals('4.5.6', Version::highest($versions)->getOriginalString()); }