/** * Manipulate data */ protected function manipulateData() { if ($this->paceUnit->isTimeFormat()) { $factor = $this->paceUnit->factorForUnit(); $this->Data = array_map(function ($v) use($factor) { return $v == 0 ? 3600 * 1000 : 1000 * round($v * $factor); }, $this->Data); } else { $dividend = $this->paceUnit->dividendForUnit(); $this->Data = array_map(function ($v) use($dividend) { return $v == 0 ? 0 : round($dividend / $v, 1); }, $this->Data); } }
/** * @param int $paceInSeconds * @return int */ protected function zoneFor($paceInSeconds) { if ($paceInSeconds == 0) { return 0; } if ($this->PaceUnit->isDecimalFormat()) { $dividend = $this->PaceUnit->dividendForUnit(); return $paceInSeconds > $dividend ? 0 : $dividend / floor($dividend / $paceInSeconds); } $factor = $this->PaceUnit->factorForUnit(); return round(30 * floor($factor * $paceInSeconds / 30) / $factor); }