コード例 #1
0
 public function testConvert()
 {
     foreach (TimeUnit::getConstants() as $u) {
         $u = TimeUnit::get($u);
         $this->assertInstanceOf('ConcurrentPhpUtils\\TimeUnit', $u);
         $this->assertEquals(42, $u->convert(42, $u));
         foreach (TimeUnit::getConstants() as $v) {
             $v = TimeUnit::get($v);
             if ($v->convert(42, $v) >= 42) {
                 $this->assertEquals(42, $v->convert($u->convert(42, $v), $u));
             }
         }
     }
     $this->assertEquals(24, TimeUnit::HOURS()->convert(1, TimeUnit::DAYS()));
     $this->assertEquals(60, TimeUnit::MINUTES()->convert(1, TimeUnit::HOURS()));
     $this->assertEquals(60, TimeUnit::SECONDS()->convert(1, TimeUnit::MINUTES()));
     $this->assertEquals(1000, TimeUnit::MILLISECONDS()->convert(1, TimeUnit::SECONDS()));
     $this->assertEquals(1000, TimeUnit::MICROSECONDS()->convert(1, TimeUnit::MILLISECONDS()));
     $this->assertEquals(1000, TimeUnit::NANOSECONDS()->convert(1, TimeUnit::MICROSECONDS()));
     $this->assertEquals(24, TimeUnit::DAYS()->toHours(1));
     $this->assertEquals(60, TimeUnit::HOURS()->toMinutes(1));
     $this->assertEquals(60, TimeUnit::MINUTES()->toSeconds(1));
     $this->assertEquals(1000, TimeUnit::SECONDS()->toMillis(1));
     $this->assertEquals(1000, TimeUnit::MILLISECONDS()->toMicros(1));
     $this->assertEquals(1000, TimeUnit::MICROSECONDS()->toNanos(1));
 }
コード例 #2
0
 /**
  * Convert the given time duration in the given unit to this
  * unit.  Conversions from finer to coarser granularities
  * truncate, so lose precision. For example converting
  * 999 milliseconds to seconds results in
  * 0. Conversions from coarser to finer granularities
  * with arguments that would numerically overflow saturate to
  * "-PHP_INT_MAX -1" if negative or "PHP_INT_MAX"
  * if positive.
  *
  * For example, to convert 10 minutes to milliseconds, use:
  * TimeUnit::MILLISECONDS()->convert(10, TimeUnit::MINUTES);
  *
  * @param int $sourceDuration the time duration in the given source unit
  * @param TimeUnit $sourceUnit the unit of the source duration argument
  * @return float|int
  */
 public function convert($sourceDuration, TimeUnit $sourceUnit)
 {
     switch ($this->getValue()) {
         case self::NANOSECONDS:
             return $sourceUnit->toNanos($sourceDuration);
         case self::MICROSECONDS:
             return $sourceUnit->toMicros($sourceDuration);
         case self::MILLISECONDS:
             return $sourceUnit->toMillis($sourceDuration);
         case self::SECONDS:
             return $sourceUnit->toSeconds($sourceDuration);
         case self::MINUTES:
             return $sourceUnit->toMinutes($sourceDuration);
         case self::HOURS:
             return $sourceUnit->toHours($sourceDuration);
         case self::DAYS:
             return $sourceUnit->toDays($sourceDuration);
     }
 }
コード例 #3
0
 public function f()
 {
     $this->barrier->await(100, TimeUnit::MILLISECONDS());
 }