pub use crate::tcx::*;
pub mod tcx;
#[cfg(test)]
mod tests {
#[test]
fn file1_run() {
let file = std::fs::File::open("tests/20210119_run_garmin_fenix6.tcx").unwrap();
let mut reader = std::io::BufReader::new(file);
let mut result = crate::tcx::read(&mut reader).unwrap();
result.calc_heartrates();
result
.export_json("tests/20210119_run_garmin_fenix6.json")
.expect("Unable to export tests/20210119_run_garmin_fenix6.json.");
let activities = result.activities.unwrap();
assert_eq!(activities.activities.len(), 1);
let activity = &activities.activities[0];
assert_eq!(activity.laps.len(), 1);
let lap = &activity.laps[0];
assert_eq!(lap.tracks.len(), 1);
let track = &lap.tracks[0];
assert_eq!(track.trackpoints.len(), 1232);
}
#[test]
fn file2_ride_with_power() {
let result = crate::tcx::TrainingCenterDatabase::from_file(
&mut "tests/20210308_virtual_ride_with_power.tcx",
)
.unwrap();
let activities = result.activities.unwrap();
assert_eq!(activities.activities.len(), 1);
let activity = &activities.activities[0];
assert_eq!(activity.laps.len(), 1);
let lap = &activity.laps[0];
assert_eq!(lap.tracks.len(), 1);
let track = &lap.tracks[0];
assert_eq!(track.trackpoints.len(), 1434);
let first_trackpoint = &track.trackpoints[0];
let cadence = first_trackpoint.cadence.unwrap();
assert_eq!(cadence, 87);
let extensions = first_trackpoint.extensions.as_ref().unwrap();
let tpx = extensions.tpx.as_ref().unwrap();
let watts = tpx.watts.unwrap();
assert_eq!(watts, 216);
}
#[test]
fn file3_yoga() {
let result =
crate::tcx::read_file("tests/20210323_yoga.tcx").unwrap();
let activities = result.activities.unwrap();
assert_eq!(activities.activities.len(), 1);
let activity = &activities.activities[0];
assert_eq!(activity.laps.len(), 1);
let _lap = &activity.laps[0];
}
}