Пример #1
0
 protected function checkAgainst(array $ExpectedLaps)
 {
     foreach ($ExpectedLaps as $i => $Lap) {
         $this->assertEquals($Lap[0], $this->Laps->at($i)->duration()->seconds());
         $this->assertEquals($Lap[1], $this->Laps->at($i)->distance()->kilometer());
         $this->assertEquals($Lap[2], $this->Laps->at($i)->isActive());
     }
 }
Пример #2
0
 public function testConsecutiveDistances()
 {
     $this->object->setDistances(array(1.0, 2.0, 3.0));
     $this->object->calculateFrom($this->trackdata());
     $this->assertEquals(4, $this->Laps->num());
     $this->assertEquals(1.0, $this->Laps->at(0)->distance()->kilometer());
     $this->assertEquals(1.0, $this->Laps->at(1)->distance()->kilometer());
     $this->assertEquals(1.0, $this->Laps->at(2)->distance()->kilometer());
     $this->assertEquals(1.0, $this->Laps->at(0)->trackDistance()->kilometer());
     $this->assertEquals(2.0, $this->Laps->at(1)->trackDistance()->kilometer());
     $this->assertEquals(3.0, $this->Laps->at(2)->trackDistance()->kilometer());
 }
Пример #3
0
 public function testConsecutiveTimes()
 {
     $this->object->setTimes(array(300, 370, 430, 498, 560, 840));
     $this->object->calculateFrom($this->trackdata());
     $this->assertEquals(6, $this->Laps->num());
     $this->assertEquals(300, $this->Laps->at(0)->duration()->seconds());
     $this->assertEquals(70, $this->Laps->at(1)->duration()->seconds());
     $this->assertEquals(60, $this->Laps->at(2)->duration()->seconds());
     $this->assertEquals(68, $this->Laps->at(3)->duration()->seconds());
     $this->assertEquals(62, $this->Laps->at(4)->duration()->seconds());
     $this->assertEquals(280, $this->Laps->at(5)->duration()->seconds());
 }
Пример #4
0
 /**
  * Construct laps from splits object
  */
 protected function constructLapsFromSplits()
 {
     if ($this->handmadeLapsDiffer() && !Request::param('calculate-for-splits')) {
         $this->Laps->readFrom($this->Context->activity()->splits());
         return;
     }
     if ($this->handmadeLapsTimeDiffers()) {
         $this->constructLapsFromSplitsDistances();
     } else {
         $this->constructLapsFromSplitsTimes();
     }
     $num = $this->Laps->num();
     foreach ($this->Context->activity()->splits()->asArray() as $i => $split) {
         if ($i < $num) {
             $this->Laps->at($i)->setMode($split->isActive() ? Lap::MODE_ACTIVE : Lap::MODE_RESTING);
         }
     }
 }
Пример #5
0
 /**
  * Construct laps from splits object
  */
 protected function constructLapsFromSplits()
 {
     if ($this->handmadeLapsDiffer() && !Request::param('calculate-for-splits')) {
         $this->Laps->readFrom($this->Context->activity()->splits());
         return;
     }
     $Distances = array();
     $sum = 0;
     foreach ($this->Context->activity()->splits()->asArray() as $split) {
         $Distances[] = $split->distance() + $sum;
         $sum += $split->distance();
     }
     $this->Laps->calculateFrom($Distances, $this->Context->trackdata(), $this->Context->route());
     $num = $this->Laps->num();
     foreach ($this->Context->activity()->splits()->asArray() as $i => $split) {
         if ($i < $num) {
             $this->Laps->at($i)->setMode($split->isActive() ? Lap::MODE_ACTIVE : Lap::MODE_RESTING);
         }
     }
 }
Пример #6
0
 /**
  * @param int $i
  * @return string
  */
 protected function tableRowFor($i)
 {
     $Lap = $this->Laps->at($i);
     $Lap->pace()->setUnit($this->DemandedPace->unit());
     return '<tr class="c ' . ($Lap->isActive() ? '' : 'unimportant') . '">' . '<td class="small">' . ($Lap->isActive() ? $this->IndexActive++ . '.' : '(' . $this->IndexResting++ . '.)') . '</td>' . '<td>' . ($Lap->hasTrackValues() ? $Lap->trackDistance()->string() : '-') . '</td>' . '<td>' . ($Lap->hasTrackValues() ? $Lap->trackDuration()->string() : '-') . '</td>' . '<td>' . $Lap->distance()->string() . '</td>' . '<td>' . $Lap->duration()->string() . '</td>' . ($this->DemandedTime->isZero() ? '' : '<td>' . $Lap->duration()->compareTo($this->DemandedTime, true) . '</td>') . '<td>' . $Lap->pace()->valueWithAppendix() . '</td>' . ($this->DemandedPace->isEmpty() ? '' : '<td>' . $Lap->pace()->compareTo($this->DemandedPace) . '</td>') . '<td>' . ($Lap->hasHR() ? Helper::Unknown($Lap->HRavg()->string(), '-') : '-') . '</td>' . '<td>' . ($Lap->hasHR() ? Helper::Unknown($Lap->HRmax()->string(), '-') : '-') . '</td>' . '<td>' . ($Lap->hasElevation() ? '+' . Elevation::format($Lap->elevationUp(), false) . '/-' . Elevation::format($Lap->elevationDown(), false) : '-') . '</td>' . $this->additionalTableCellsFor($Lap) . '</tr>';
 }