// import module velocity dan rstest
use phyrust::config::{Float, EPSILON};
use phyrust::core::velocity;
use rstest::rstest;

#[rstest]
#[case(10.0, 2.0, 5.0)] // pada kasus normal
#[case(0.0, 5.0, 0.0)] // pada kasus dengan s = 0 dan t = 5
#[case(10.0, 0.0, 0.0)] // pada kasus dengan s= 10 dan t = 0
#[case(100.0, 0.5, 200.0)] // pada kasus dengan t = 0.5
fn test_velocity_scenarios(#[case] s: Float, #[case] t: Float, #[case] expected: Float) {
    let result: Float = velocity::velocity_formula(s, t);
    assert!(
        (result - expected).abs() < EPSILON,
        "failed at: s={}, t={}, result={}, expect={}",
        s,
        t,
        result,
        expected
    );
}
