zwiftout/src/stats/intervalsToIntensities.ts

16 lines
506 B
TypeScript

import { chain } from "ramda";
import { Interval } from "../ast";
// Converts interval to array of intensity values for each second
const intervalToIntensities = ({ duration, intensity }: Interval): number[] => {
const seconds = [];
const { from, to } = intensity;
for (let i = 0; i < duration.value; i++) {
// Intensity in a single second
seconds.push(from + (to - from) * (i / duration.value));
}
return seconds;
};
export const intervalsToIntensities = chain(intervalToIntensities);