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

170 lines (169 loc) 15.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const data_store_1 = require("./data.store"); const data_flow_1 = require("./data.flow"); const data_avg_flow_1 = require("./data.avg-flow"); const data_grit_1 = require("./data.grit"); const data_avg_grit_1 = require("./data.avg-grit"); const data_vertical_oscillation_1 = require("./data.vertical-oscillation"); const data_vertical_oscillation_avg_1 = require("./data.vertical-oscillation-avg"); const data_vertical_oscillation_min_1 = require("./data.vertical-oscillation-min"); const data_vertical_oscillation_max_1 = require("./data.vertical-oscillation-max"); const data_vertical_speed_1 = require("./data.vertical-speed"); const data_vertical_speed_avg_1 = require("./data.vertical-speed-avg"); const data_vertical_speed_min_1 = require("./data.vertical-speed-min"); const data_vertical_speed_max_1 = require("./data.vertical-speed-max"); const data_jump_distance_1 = require("./data.jump-distance"); const data_distance_1 = require("./data.distance"); const data_gnss_distance_1 = require("./data.gnss-distance"); const data_gnss_distance_miles_1 = require("./data.gnss-distance-miles"); const data_auto_lap_distance_1 = require("./data.auto-lap-distance"); const data_avg_stroke_distance_1 = require("./data.avg-stroke-distance"); const data_avg_stride_length_1 = require("./data.avg-stride-length"); const data_step_length_1 = require("./data.step-length"); const data_target_distance_1 = require("./data.target-distance"); const data_stryd_distance_1 = require("./data.stryd-distance"); const data_jump_stats_1 = require("./data.jump-stats"); const getBaseTypeFromStatType = (type) => type.replace(/^(Average|Minimum|Maximum)\s+/i, ''); describe('DynamicDataLoader family mappings', () => { it('maps Flow and Grit to average families', () => { expect(data_store_1.DynamicDataLoader.dataTypeAvgDataType[data_flow_1.DataFlow.type]).toBe(data_avg_flow_1.DataAvgFlow.type); expect(data_store_1.DynamicDataLoader.dataTypeAvgDataType[data_grit_1.DataGrit.type]).toBe(data_avg_grit_1.DataAvgGrit.type); }); it('maps Vertical Oscillation family to avg/min/max canonical names', () => { expect(data_store_1.DynamicDataLoader.dataTypeAvgDataType[data_vertical_oscillation_1.DataVerticalOscillation.type]).toBe(data_vertical_oscillation_avg_1.DataVerticalOscillationAvg.type); expect(data_store_1.DynamicDataLoader.dataTypeMinDataType[data_vertical_oscillation_1.DataVerticalOscillation.type]).toBe(data_vertical_oscillation_min_1.DataVerticalOscillationMin.type); expect(data_store_1.DynamicDataLoader.dataTypeMaxDataType[data_vertical_oscillation_1.DataVerticalOscillation.type]).toBe(data_vertical_oscillation_max_1.DataVerticalOscillationMax.type); }); it('maps Vertical Speed family and unit-derived variants to avg/min/max canonical names', () => { expect(data_store_1.DynamicDataLoader.dataTypeAvgDataType[data_vertical_speed_1.DataVerticalSpeed.type]).toBe(data_vertical_speed_avg_1.DataVerticalSpeedAvg.type); expect(data_store_1.DynamicDataLoader.dataTypeMinDataType[data_vertical_speed_1.DataVerticalSpeed.type]).toBe(data_vertical_speed_min_1.DataVerticalSpeedMin.type); expect(data_store_1.DynamicDataLoader.dataTypeMaxDataType[data_vertical_speed_1.DataVerticalSpeed.type]).toBe(data_vertical_speed_max_1.DataVerticalSpeedMax.type); expect(data_store_1.DynamicDataLoader.dataTypeAvgDataType[data_vertical_speed_1.DataVerticalSpeedFeetPerSecond.type]).toBe(data_vertical_speed_avg_1.DataVerticalSpeedAvgFeetPerSecond.type); expect(data_store_1.DynamicDataLoader.dataTypeMinDataType[data_vertical_speed_1.DataVerticalSpeedFeetPerSecond.type]).toBe(data_vertical_speed_min_1.DataVerticalSpeedMinFeetPerSecond.type); expect(data_store_1.DynamicDataLoader.dataTypeMaxDataType[data_vertical_speed_1.DataVerticalSpeedFeetPerSecond.type]).toBe(data_vertical_speed_max_1.DataVerticalSpeedMaxFeetPerSecond.type); expect(data_store_1.DynamicDataLoader.dataTypeAvgDataType[data_vertical_speed_1.DataVerticalSpeedMetersPerMinute.type]).toBe(data_vertical_speed_avg_1.DataVerticalSpeedAvgMetersPerMinute.type); expect(data_store_1.DynamicDataLoader.dataTypeMinDataType[data_vertical_speed_1.DataVerticalSpeedMetersPerMinute.type]).toBe(data_vertical_speed_min_1.DataVerticalSpeedMinMetersPerMinute.type); expect(data_store_1.DynamicDataLoader.dataTypeMaxDataType[data_vertical_speed_1.DataVerticalSpeedMetersPerMinute.type]).toBe(data_vertical_speed_max_1.DataVerticalSpeedMaxMetersPerMinute.type); expect(data_store_1.DynamicDataLoader.dataTypeAvgDataType[data_vertical_speed_1.DataVerticalSpeedFeetPerMinute.type]).toBe(data_vertical_speed_avg_1.DataVerticalSpeedAvgFeetPerMinute.type); expect(data_store_1.DynamicDataLoader.dataTypeMinDataType[data_vertical_speed_1.DataVerticalSpeedFeetPerMinute.type]).toBe(data_vertical_speed_min_1.DataVerticalSpeedMinFeetPerMinute.type); expect(data_store_1.DynamicDataLoader.dataTypeMaxDataType[data_vertical_speed_1.DataVerticalSpeedFeetPerMinute.type]).toBe(data_vertical_speed_max_1.DataVerticalSpeedMaxFeetPerMinute.type); expect(data_store_1.DynamicDataLoader.dataTypeAvgDataType[data_vertical_speed_1.DataVerticalSpeedMetersPerHour.type]).toBe(data_vertical_speed_avg_1.DataVerticalSpeedAvgMetersPerHour.type); expect(data_store_1.DynamicDataLoader.dataTypeMinDataType[data_vertical_speed_1.DataVerticalSpeedMetersPerHour.type]).toBe(data_vertical_speed_min_1.DataVerticalSpeedMinMetersPerHour.type); expect(data_store_1.DynamicDataLoader.dataTypeMaxDataType[data_vertical_speed_1.DataVerticalSpeedMetersPerHour.type]).toBe(data_vertical_speed_max_1.DataVerticalSpeedMaxMetersPerHour.type); expect(data_store_1.DynamicDataLoader.dataTypeAvgDataType[data_vertical_speed_1.DataVerticalSpeedFeetPerHour.type]).toBe(data_vertical_speed_avg_1.DataVerticalSpeedAvgFeetPerHour.type); expect(data_store_1.DynamicDataLoader.dataTypeMinDataType[data_vertical_speed_1.DataVerticalSpeedFeetPerHour.type]).toBe(data_vertical_speed_min_1.DataVerticalSpeedMinFeetPerHour.type); expect(data_store_1.DynamicDataLoader.dataTypeMaxDataType[data_vertical_speed_1.DataVerticalSpeedFeetPerHour.type]).toBe(data_vertical_speed_max_1.DataVerticalSpeedMaxFeetPerHour.type); expect(data_store_1.DynamicDataLoader.dataTypeAvgDataType[data_vertical_speed_1.DataVerticalSpeedKilometerPerHour.type]).toBe(data_vertical_speed_avg_1.DataVerticalSpeedAvgKilometerPerHour.type); expect(data_store_1.DynamicDataLoader.dataTypeMinDataType[data_vertical_speed_1.DataVerticalSpeedKilometerPerHour.type]).toBe(data_vertical_speed_min_1.DataVerticalSpeedMinKilometerPerHour.type); expect(data_store_1.DynamicDataLoader.dataTypeMaxDataType[data_vertical_speed_1.DataVerticalSpeedKilometerPerHour.type]).toBe(data_vertical_speed_max_1.DataVerticalSpeedMaxKilometerPerHour.type); expect(data_store_1.DynamicDataLoader.dataTypeAvgDataType[data_vertical_speed_1.DataVerticalSpeedMilesPerHour.type]).toBe(data_vertical_speed_avg_1.DataVerticalSpeedAvgMilesPerHour.type); expect(data_store_1.DynamicDataLoader.dataTypeMinDataType[data_vertical_speed_1.DataVerticalSpeedMilesPerHour.type]).toBe(data_vertical_speed_min_1.DataVerticalSpeedMinMilesPerHour.type); expect(data_store_1.DynamicDataLoader.dataTypeMaxDataType[data_vertical_speed_1.DataVerticalSpeedMilesPerHour.type]).toBe(data_vertical_speed_max_1.DataVerticalSpeedMaxMilesPerHour.type); }); it('maps Jump Distance family to avg/min/max canonical names', () => { expect(data_store_1.DynamicDataLoader.dataTypeAvgDataType[data_jump_distance_1.DataJumpDistance.type]).toBe(data_jump_stats_1.DataJumpDistanceAvg.type); expect(data_store_1.DynamicDataLoader.dataTypeMinDataType[data_jump_distance_1.DataJumpDistance.type]).toBe(data_jump_stats_1.DataJumpDistanceMin.type); expect(data_store_1.DynamicDataLoader.dataTypeMaxDataType[data_jump_distance_1.DataJumpDistance.type]).toBe(data_jump_stats_1.DataJumpDistanceMax.type); }); it('maps all jump families to avg/min/max canonical names', () => { const jumpFamilyMappings = [ { base: data_jump_distance_1.DataJumpDistance.type, avg: data_jump_stats_1.DataJumpDistanceAvg.type, min: data_jump_stats_1.DataJumpDistanceMin.type, max: data_jump_stats_1.DataJumpDistanceMax.type }, { base: 'Jump Hang Time', avg: data_jump_stats_1.DataJumpHangTimeAvg.type, min: data_jump_stats_1.DataJumpHangTimeMin.type, max: data_jump_stats_1.DataJumpHangTimeMax.type }, { base: 'Jump Height', avg: data_jump_stats_1.DataJumpHeightAvg.type, min: data_jump_stats_1.DataJumpHeightMin.type, max: data_jump_stats_1.DataJumpHeightMax.type }, { base: 'Jump Speed', avg: data_jump_stats_1.DataJumpSpeedAvg.type, min: data_jump_stats_1.DataJumpSpeedMin.type, max: data_jump_stats_1.DataJumpSpeedMax.type }, { base: 'Jump Rotations', avg: data_jump_stats_1.DataJumpRotationsAvg.type, min: data_jump_stats_1.DataJumpRotationsMin.type, max: data_jump_stats_1.DataJumpRotationsMax.type }, { base: 'Jump Score', avg: data_jump_stats_1.DataJumpScoreAvg.type, min: data_jump_stats_1.DataJumpScoreMin.type, max: data_jump_stats_1.DataJumpScoreMax.type } ]; jumpFamilyMappings.forEach(({ base, avg, min, max }) => { expect(data_store_1.DynamicDataLoader.dataTypeAvgDataType[base]).toBe(avg); expect(data_store_1.DynamicDataLoader.dataTypeMinDataType[base]).toBe(min); expect(data_store_1.DynamicDataLoader.dataTypeMaxDataType[base]).toBe(max); }); }); it('maps jump speed families in unit groups to jump-specific unit targets', () => { expect(data_store_1.DynamicDataLoader.dataTypeUnitGroups[data_jump_stats_1.DataJumpSpeedAvg.type][data_jump_stats_1.DataJumpSpeedAvgKilometersPerHour.type]).toBeDefined(); expect(data_store_1.DynamicDataLoader.dataTypeUnitGroups[data_jump_stats_1.DataJumpSpeedAvg.type][data_jump_stats_1.DataJumpSpeedAvgMilesPerHour.type]).toBeDefined(); expect(data_store_1.DynamicDataLoader.dataTypeUnitGroups[data_jump_stats_1.DataJumpSpeedAvg.type][data_jump_stats_1.DataJumpSpeedAvgFeetPerSecond.type]).toBeDefined(); expect(data_store_1.DynamicDataLoader.dataTypeUnitGroups[data_jump_stats_1.DataJumpSpeedAvg.type][data_jump_stats_1.DataJumpSpeedAvgKnots.type]).toBeDefined(); expect(data_store_1.DynamicDataLoader.dataTypeUnitGroups[data_jump_stats_1.DataJumpSpeedMin.type][data_jump_stats_1.DataJumpSpeedMinKilometersPerHour.type]).toBeDefined(); expect(data_store_1.DynamicDataLoader.dataTypeUnitGroups[data_jump_stats_1.DataJumpSpeedMin.type][data_jump_stats_1.DataJumpSpeedMinMilesPerHour.type]).toBeDefined(); expect(data_store_1.DynamicDataLoader.dataTypeUnitGroups[data_jump_stats_1.DataJumpSpeedMin.type][data_jump_stats_1.DataJumpSpeedMinFeetPerSecond.type]).toBeDefined(); expect(data_store_1.DynamicDataLoader.dataTypeUnitGroups[data_jump_stats_1.DataJumpSpeedMin.type][data_jump_stats_1.DataJumpSpeedMinKnots.type]).toBeDefined(); expect(data_store_1.DynamicDataLoader.dataTypeUnitGroups[data_jump_stats_1.DataJumpSpeedMax.type][data_jump_stats_1.DataJumpSpeedMaxKilometersPerHour.type]).toBeDefined(); expect(data_store_1.DynamicDataLoader.dataTypeUnitGroups[data_jump_stats_1.DataJumpSpeedMax.type][data_jump_stats_1.DataJumpSpeedMaxMilesPerHour.type]).toBeDefined(); expect(data_store_1.DynamicDataLoader.dataTypeUnitGroups[data_jump_stats_1.DataJumpSpeedMax.type][data_jump_stats_1.DataJumpSpeedMaxFeetPerSecond.type]).toBeDefined(); expect(data_store_1.DynamicDataLoader.dataTypeUnitGroups[data_jump_stats_1.DataJumpSpeedMax.type][data_jump_stats_1.DataJumpSpeedMaxKnots.type]).toBeDefined(); }); it('maps jump speed unit-derived families to jump-specific avg/min/max variants', () => { const jumpSpeedMphBaseType = getBaseTypeFromStatType(data_jump_stats_1.DataJumpSpeedAvgMilesPerHour.type); const jumpSpeedKphBaseType = getBaseTypeFromStatType(data_jump_stats_1.DataJumpSpeedAvgKilometersPerHour.type); expect(data_store_1.DynamicDataLoader.dataTypeAvgDataType[jumpSpeedMphBaseType]).toBe(data_jump_stats_1.DataJumpSpeedAvgMilesPerHour.type); expect(data_store_1.DynamicDataLoader.dataTypeMinDataType[jumpSpeedMphBaseType]).toBe(data_jump_stats_1.DataJumpSpeedMinMilesPerHour.type); expect(data_store_1.DynamicDataLoader.dataTypeMaxDataType[jumpSpeedMphBaseType]).toBe(data_jump_stats_1.DataJumpSpeedMaxMilesPerHour.type); expect(data_store_1.DynamicDataLoader.dataTypeAvgDataType[jumpSpeedKphBaseType]).toBe(data_jump_stats_1.DataJumpSpeedAvgKilometersPerHour.type); expect(data_store_1.DynamicDataLoader.dataTypeMinDataType[jumpSpeedKphBaseType]).toBe(data_jump_stats_1.DataJumpSpeedMinKilometersPerHour.type); expect(data_store_1.DynamicDataLoader.dataTypeMaxDataType[jumpSpeedKphBaseType]).toBe(data_jump_stats_1.DataJumpSpeedMaxKilometersPerHour.type); }); it('maps jump distance family in unit groups to feet conversion targets', () => { const jumpDistanceFamilyTypes = [ data_jump_distance_1.DataJumpDistance.type, data_jump_stats_1.DataJumpDistanceMin.type, data_jump_stats_1.DataJumpDistanceMax.type, data_jump_stats_1.DataJumpDistanceAvg.type ]; jumpDistanceFamilyTypes.forEach(jumpDistanceType => { expect(data_store_1.DynamicDataLoader.dataTypeUnitGroups[jumpDistanceType]).toBeDefined(); expect(data_store_1.DynamicDataLoader.dataTypeUnitGroups[jumpDistanceType][data_distance_1.DataDistanceFeet.type]).toBeDefined(); }); }); it('maps all distance-derived families in unit groups to miles conversion targets', () => { const mappedDistanceTypes = [ data_distance_1.DataDistance.type, data_gnss_distance_1.DataGNSSDistance.type, data_auto_lap_distance_1.DataAutoLapDistance.type, data_avg_stroke_distance_1.DataAvgStrokeDistance.type, data_avg_stride_length_1.DataAvgStrideLength.type, data_step_length_1.DataStepLength.type, data_target_distance_1.DataTargetDistance.type, data_stryd_distance_1.DataStrydDistance.type ]; mappedDistanceTypes.forEach(distanceType => { expect(data_store_1.DynamicDataLoader.dataTypeUnitGroups[distanceType]).toBeDefined(); const expectedMilesDistanceType = distanceType === data_gnss_distance_1.DataGNSSDistance.type ? data_gnss_distance_miles_1.DataGNSSDistanceMiles.type : data_distance_1.DataDistanceMiles.type; expect(data_store_1.DynamicDataLoader.dataTypeUnitGroups[distanceType][expectedMilesDistanceType]).toBeDefined(); }); }); });