mirror of
https://github.com/sstent/FitTrack_ReportGenerator.git
synced 2026-01-27 09:32:12 +00:00
sync
This commit is contained in:
@@ -1,19 +1,28 @@
|
||||
from datetime import datetime, timedelta
|
||||
import pandas as pd
|
||||
from src.core.workout_data import WorkoutData, WorkoutMetadata, PowerData, HeartRateData, SpeedData, ElevationData
|
||||
from src.core.workout_data import (
|
||||
WorkoutData,
|
||||
WorkoutMetadata,
|
||||
PowerData,
|
||||
HeartRateData,
|
||||
SpeedData,
|
||||
ElevationData,
|
||||
)
|
||||
|
||||
|
||||
def test_workout_metadata_creation():
|
||||
metadata = WorkoutMetadata(
|
||||
start_time=datetime(2023, 1, 1, 10, 0, 0),
|
||||
duration=timedelta(hours=1),
|
||||
device="Garmin",
|
||||
file_type="FIT"
|
||||
file_type="FIT",
|
||||
)
|
||||
assert metadata.start_time == datetime(2023, 1, 1, 10, 0, 0)
|
||||
assert metadata.duration == timedelta(hours=1)
|
||||
assert metadata.device == "Garmin"
|
||||
assert metadata.file_type == "FIT"
|
||||
|
||||
|
||||
def test_power_data_creation():
|
||||
power_data = PowerData(
|
||||
raw_power_stream=[100.0, 150.0, 200.0],
|
||||
@@ -21,51 +30,55 @@ def test_power_data_creation():
|
||||
normalized_power=160.0,
|
||||
intensity_factor=0.8,
|
||||
training_stress_score=75.0,
|
||||
zone_distribution={"Zone 2": "30min"}
|
||||
zone_distribution={"Zone 2": "30min"},
|
||||
)
|
||||
assert power_data.average_power == 150.0
|
||||
assert power_data.raw_power_stream == [100.0, 150.0, 200.0]
|
||||
|
||||
|
||||
def test_heart_rate_data_creation():
|
||||
hr_data = HeartRateData(
|
||||
raw_hr_stream=[120, 130, 140],
|
||||
average_hr=130.0,
|
||||
max_hr=180,
|
||||
zone_distribution={"Zone 3": "20min"}
|
||||
zone_distribution={"Zone 3": "20min"},
|
||||
)
|
||||
assert hr_data.average_hr == 130.0
|
||||
assert hr_data.raw_hr_stream == [120, 130, 140]
|
||||
|
||||
|
||||
def test_speed_data_creation():
|
||||
speed_data = SpeedData(
|
||||
raw_speed_stream=[5.0, 6.0, 7.0],
|
||||
average_speed=6.0,
|
||||
max_speed=8.0
|
||||
raw_speed_stream=[5.0, 6.0, 7.0], average_speed=6.0, max_speed=8.0
|
||||
)
|
||||
assert speed_data.average_speed == 6.0
|
||||
|
||||
|
||||
def test_elevation_data_creation():
|
||||
elevation_data = ElevationData(
|
||||
raw_elevation_stream=[100.0, 110.0, 105.0],
|
||||
total_ascent=20.0,
|
||||
total_descent=15.0,
|
||||
max_elevation=110.0,
|
||||
min_elevation=95.0
|
||||
min_elevation=95.0,
|
||||
)
|
||||
assert elevation_data.total_ascent == 20.0
|
||||
|
||||
|
||||
def test_workout_data_creation():
|
||||
metadata = WorkoutMetadata(
|
||||
start_time=datetime(2023, 1, 1, 10, 0, 0),
|
||||
duration=timedelta(hours=1),
|
||||
device="Garmin",
|
||||
file_type="FIT"
|
||||
file_type="FIT",
|
||||
)
|
||||
power_data = PowerData(average_power=150.0)
|
||||
hr_data = HeartRateData(average_hr=130.0)
|
||||
speed_data = SpeedData(average_speed=25.0)
|
||||
elevation_data = ElevationData(total_ascent=100.0)
|
||||
time_series = pd.DataFrame({"timestamp": [datetime(2023, 1, 1, 10, 0, 0)], "power": [150]})
|
||||
time_series = pd.DataFrame(
|
||||
{"timestamp": [datetime(2023, 1, 1, 10, 0, 0)], "power": [150]}
|
||||
)
|
||||
|
||||
workout_data = WorkoutData(
|
||||
metadata=metadata,
|
||||
@@ -73,7 +86,7 @@ def test_workout_data_creation():
|
||||
power_data=power_data,
|
||||
heart_rate_data=hr_data,
|
||||
speed_data=speed_data,
|
||||
elevation_data=elevation_data
|
||||
elevation_data=elevation_data,
|
||||
)
|
||||
|
||||
assert workout_data.metadata.file_type == "FIT"
|
||||
@@ -81,4 +94,4 @@ def test_workout_data_creation():
|
||||
assert workout_data.heart_rate_data.average_hr == 130.0
|
||||
assert workout_data.speed_data.average_speed == 25.0
|
||||
assert workout_data.elevation_data.total_ascent == 100.0
|
||||
assert not workout_data.time_series_data.empty
|
||||
assert not workout_data.time_series_data.empty
|
||||
|
||||
Reference in New Issue
Block a user