use bevy_alchemy::*;
use std::time::Duration;
#[test]
fn merge_replace() {
let mut first = Lifetime::from_seconds(1.0).with_mode(TimerMergeMode::Replace);
let second = Lifetime::from_seconds(2.0).with_mode(TimerMergeMode::Replace);
first.merge(&second);
assert_eq!(first, second);
}
#[test]
fn merge_keep() {
let first = Lifetime::from_seconds(1.0).with_mode(TimerMergeMode::Keep);
let second = Lifetime::from_seconds(2.0).with_mode(TimerMergeMode::Keep);
let mut result = first.clone();
result.merge(&second);
assert_eq!(result, first);
}
#[test]
fn merge_fraction() {
let first = Lifetime::from_seconds(1.0).with_mode(TimerMergeMode::Fraction);
let second = Lifetime::from_seconds(2.0).with_mode(TimerMergeMode::Fraction);
let mut result = first.clone();
result.merge(&second);
assert_eq!(result, second);
}
#[test]
fn merge_max() {
let first = Lifetime::from_seconds(1.0).with_mode(TimerMergeMode::Max);
let mut second = Lifetime::from_seconds(3.0).with_mode(TimerMergeMode::Max);
second.merge(&first);
let third = Lifetime::from_seconds(2.0).with_mode(TimerMergeMode::Max);
let mut result = third.clone();
result.merge(&second);
assert_eq!(result, second);
}
#[test]
fn merge_sum() {
let first = Lifetime::from_seconds(1.0).with_mode(TimerMergeMode::Sum);
let mut second = Lifetime::from_seconds(3.0).with_mode(TimerMergeMode::Sum);
second.merge(&first);
let mut result = Lifetime::from_seconds(2.0).with_mode(TimerMergeMode::Sum);
result.merge(&second);
assert_eq!(result.timer.duration(), Duration::from_secs_f32(6.0));
}