@sports-alliance/sports-lib
Version:
A Library to for importing / exporting and processing GPX, TCX, FIT and JSON files from services such as Strava, Movescount, Garmin, Polar etc
38 lines (37 loc) • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const importer_fit_1 = require("./importer.fit");
const activity_1 = require("../../../../activities/activity");
const activity_types_1 = require("../../../../activities/activity.types");
const creator_1 = require("../../../../creators/creator");
const data_jump_stats_1 = require("../../../../data/data.jump-stats");
describe('EventImporterFIT jump stats regression', () => {
const getStatValue = (stats, type) => {
const stat = stats.find(s => s.getType() === type);
if (!stat) {
throw new Error(`Expected stat '${type}'`);
}
return stat.getValue();
};
it('uses per-property counts for averages and emits zero averages when data exists', () => {
const activity = new activity_1.Activity(new Date(0), new Date(2000), activity_types_1.ActivityTypes.MountainBiking, new creator_1.Creator('test'));
const sessionObject = {
start_time: new Date(0),
timestamp: new Date(2000),
total_elapsed_time: 2,
total_timer_time: 2,
total_distance: 100,
jumps: [
{ distance: 2, score: 10, hang_time: 0.3, speed: 0, rotations: 0, height: 0 },
{ score: 20, hang_time: 0.7, speed: 4, rotations: 0, height: 0 }
]
};
const stats = importer_fit_1.EventImporterFIT.getStatsFromObject(sessionObject, activity, false);
expect(getStatValue(stats, data_jump_stats_1.DataJumpDistanceAvg.type)).toBe(2);
expect(getStatValue(stats, data_jump_stats_1.DataJumpScoreAvg.type)).toBe(15);
expect(getStatValue(stats, data_jump_stats_1.DataJumpHangTimeAvg.type)).toBeCloseTo(0.5, 10);
expect(getStatValue(stats, data_jump_stats_1.DataJumpSpeedAvg.type)).toBe(2);
expect(getStatValue(stats, data_jump_stats_1.DataJumpRotationsAvg.type)).toBe(0);
expect(getStatValue(stats, data_jump_stats_1.DataJumpHeightAvg.type)).toBe(0);
});
});