From 8daecba1ca064a01e7b44b2da16ba60f0f2fe2ed Mon Sep 17 00:00:00 2001 From: Rene Saarsoo Date: Sun, 20 Sep 2020 15:34:05 +0300 Subject: [PATCH] Extract totalDuration() --- src/index.ts | 28 ++++++++++++++++------------ src/totalDuration.ts | 5 +++++ 2 files changed, 21 insertions(+), 12 deletions(-) create mode 100644 src/totalDuration.ts diff --git a/src/index.ts b/src/index.ts index 7a3cf52..f22c92d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,6 +3,7 @@ import { averageIntensity } from "./average-intensity"; import { normalizedIntensity } from "./normalized-intensity"; import { parse } from "./parser"; import { tokenize } from "./tokenizer"; +import { totalDuration } from "./totalDuration"; import { tss } from "./tss"; const filename = process.argv[2]; @@ -15,17 +16,20 @@ const workout = parse(tokenize(file)); console.log(workout.intervals); -workout.intervals.forEach((interval, i) => { - console.log(`#${i} TSS: ${tss([interval])}`); -}); - -console.log("Total TSS: " + tss(workout.intervals)); - -const duration = - workout.intervals.map(({ duration }) => duration).reduce((a, b) => a + b, 0) / - 60; -console.log(`Total duration: ${duration} minutes`); +console.log(); +console.log("Total TSS: " + tss(workout.intervals).toFixed()); console.log(); -console.log(`Average intensity: ${averageIntensity(workout.intervals)}`); -console.log(`Normalized intensity: ${normalizedIntensity(workout.intervals)}`); +console.log( + `Total duration: ${(totalDuration(workout.intervals) / 60).toFixed()} minutes` +); + +console.log(); +console.log( + `Average intensity: ${(averageIntensity(workout.intervals) * 100).toFixed()}%` +); +console.log( + `Normalized intensity: ${( + normalizedIntensity(workout.intervals) * 100 + ).toFixed()}%` +); diff --git a/src/totalDuration.ts b/src/totalDuration.ts new file mode 100644 index 0000000..334296a --- /dev/null +++ b/src/totalDuration.ts @@ -0,0 +1,5 @@ +import { pluck, sum } from "ramda"; +import { Interval } from "./ast"; + +export const totalDuration = (intervals: Interval[]) => + sum(pluck("duration", intervals));