UNPKG

@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
"use strict"; 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); }); });