use crate::{
util::tests_helper::{create_timer, run_with_splits},
Timer,
};
#[test]
fn reattaches_unattached_segment_history_elements_by_using_negative_ids() {
let mut timer = create_timer(&["A", "B"]);
run_with_splits(&mut timer, &[3.0, 6.0]);
run_with_splits(&mut timer, &[2.0, 4.0]);
let mut run = timer.into_run(true);
run.attempt_history.pop().unwrap();
run.fix_splits();
let segments = run.segments();
assert_eq!(segments[0].segment_history().try_get_min_index(), Some(0));
assert_eq!(segments[0].segment_history().try_get_max_index(), Some(1));
assert_eq!(segments[1].segment_history().try_get_min_index(), Some(0));
assert_eq!(segments[1].segment_history().try_get_max_index(), Some(1));
}
#[test]
fn timer_fix_run_upon_creation() {
let mut timer = create_timer(&["A", "B"]);
run_with_splits(&mut timer, &[3.0, 6.0]);
run_with_splits(&mut timer, &[2.0, 4.0]);
let mut run = timer.into_run(true);
run.attempt_history.pop().unwrap();
let run = Timer::new(run).unwrap().into_run(true);
let segments = run.segments();
assert_eq!(segments[0].segment_history().try_get_min_index(), Some(0));
assert_eq!(segments[0].segment_history().try_get_max_index(), Some(1));
assert_eq!(segments[1].segment_history().try_get_min_index(), Some(0));
assert_eq!(segments[1].segment_history().try_get_max_index(), Some(1));
}
#[test]
fn timer_fix_run_upon_replacement() {
let mut timer = create_timer(&["A", "B"]);
run_with_splits(&mut timer, &[3.0, 6.0]);
run_with_splits(&mut timer, &[2.0, 4.0]);
let mut run = timer.into_run(true);
run.attempt_history.pop().unwrap();
let mut timer = create_timer(&["A", "B"]);
timer.set_run(run).unwrap();
let run = timer.into_run(true);
let segments = run.segments();
assert_eq!(segments[0].segment_history().try_get_min_index(), Some(0));
assert_eq!(segments[0].segment_history().try_get_max_index(), Some(1));
assert_eq!(segments[1].segment_history().try_get_min_index(), Some(0));
assert_eq!(segments[1].segment_history().try_get_max_index(), Some(1));
}