Eris\Generator\DateGenerator::shrink PHP Method

shrink() public method

public shrink ( GeneratedValue $element )
$element GeneratedValue
    public function shrink(GeneratedValue $element)
    {
        $this->ensureIsInDomain($element);
        $timeOffset = $element->unbox()->getTimestamp() - $this->lowerLimit->getTimestamp();
        $halvedOffset = floor($timeOffset / 2);
        return GeneratedValue::fromJustValue($this->fromOffset($halvedOffset), 'date');
    }

Usage Example

Example #1
0
 public function testTheLowerLimitIsTheFixedPointOfShrinking()
 {
     $generator = new DateGenerator($lowerLimit = new DateTime("2014-01-01T00:00:00"), new DateTime("2014-01-02T23:59:59"));
     $value = GeneratedValue::fromJustValue(new DateTime("2014-01-01T00:01:00"), 'date');
     for ($i = 0; $i < 10; $i++) {
         $value = $generator->shrink($value);
     }
     $this->assertEquals($lowerLimit, $value->unbox());
 }