running-tools

A collection of tools for runners and their coaches
git clone https://git.ashermorgan.net/running-tools/
Log | Files | Refs | README

commit 82bace6521ac3be92388029f534b73434b185d90
parent 8bf59b1ddfc25984b5d5074009945848aa018092
Author: Asher Morgan <59518073+ashermorgan@users.noreply.github.com>
Date:   Sat, 12 Jul 2025 11:53:58 -0700

Inline pace util functions

Diffstat:
Msrc/utils/calculators.ts | 7+++----
Dsrc/utils/paces.ts | 21---------------------
Dtests/unit/utils/paces.spec.js | 14--------------
3 files changed, 3 insertions(+), 39 deletions(-)

diff --git a/src/utils/calculators.ts b/src/utils/calculators.ts @@ -1,4 +1,3 @@ -import * as paceUtils from '@/utils/paces'; import * as raceUtils from '@/utils/races'; import { TargetTypes, workoutTargetToString } from '@/utils/targets'; import type { StandardTarget, WorkoutTarget } from '@/utils/targets'; @@ -128,8 +127,8 @@ export function calculatePaceResults(input: DistanceTime, target: StandardTarget defaultUnitSystem: UnitSystems, preciseDurations: boolean = true): TargetResult { - return calculateStandardResult(input, target, (d1, t1, d2) => paceUtils.calculateTime(d1, t1, d2), - (t1, d1, t2) => paceUtils.calculateDistance(t1, d1, t2), defaultUnitSystem, preciseDurations); + return calculateStandardResult(input, target, (d1, t1, d2) => ((t1 / d1) * d2), + (t1, d1, t2) => ((d1 / t1) * t2), defaultUnitSystem, preciseDurations); } /** @@ -197,7 +196,7 @@ export function calculateWorkoutResults(input: DistanceTime, target: WorkoutTarg // Get workout split prediction d2 = raceUtils.predictDistance(t1, d1, t2, options.model, options.riegelExponent); } - const t3 = paceUtils.calculateTime(d2, t2, d3); + const t3 = (t2 / d2) * d3; // Return result return { diff --git a/src/utils/paces.ts b/src/utils/paces.ts @@ -1,21 +0,0 @@ -/** - * Calculate time from a distance and input pace - * @param {number} d1 The input pace distance (in any unit) - * @param {number} t1 The input pace time (in seconds) - * @param {number} d2 The output distance (in the same unit as d1) - * @returns {number} The output time (in seconds) - */ -export function calculateTime(d1: number, t1: number, d2: number): number { - return (t1 / d1) * d2 -} - -/** - * Calculate distance from a time and input pace - * @param {number} t1 The input pace time (in seconds) - * @param {number} d1 The input pace distance (in any unit) - * @param {number} t2 The output time (in seconds) - * @returns {number} The output distance (in the same unit as d1) - */ -export function calculateDistance(t1: number, d1: number, t2: number): number { - return (d1 / t1) * t2 -} diff --git a/tests/unit/utils/paces.spec.js b/tests/unit/utils/paces.spec.js @@ -1,14 +0,0 @@ -import { describe, test, expect } from 'vitest'; -import * as paces from '@/utils/paces'; - -describe('calculateTime method', () => { - test('1 meters in 3 seconds should equal 2 meters in 6 seconds', () => { - expect(paces.calculateTime(1, 3, 2)).to.equal(6); - }); -}); - -describe('calculateDistance method', () => { - test('1 meter in 3 seconds should equal 2 meters in 6 seconds', () => { - expect(paces.calculateDistance(3, 1, 6)).to.equal(2); - }); -});