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()); } }
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()); }
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()); }
/** * 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); } } }
/** * 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); } } }
/** * @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>'; }