use-physics 0.0.2

Composable facade crate for RustUse physics helpers
Documentation
#[cfg(feature = "oscillation")]
#[test]
fn facade_reexports_oscillation_workflow() {
    use core::f64::consts::PI;

    use use_physics::{
        SimpleHarmonicOscillator, SpringOscillator, damping_ratio, oscillation,
        oscillation_displacement, oscillation_spring_potential_energy,
    };

    let oscillator = SimpleHarmonicOscillator::new(2.0, 1.0, 0.0).unwrap();
    let spring = SpringOscillator::new(8.0, 2.0).unwrap();

    assert_eq!(damping_ratio(4.0, 2.0, 8.0), Some(0.5));
    assert_eq!(oscillation::displacement(2.0, 1.0, 0.0, 0.0), Some(2.0));
    assert_eq!(oscillation_displacement(2.0, 1.0, 0.0, 0.0), Some(2.0));
    assert_eq!(oscillation_spring_potential_energy(100.0, 0.5), Some(12.5));
    assert_eq!(spring.angular_frequency(), Some(2.0));
    assert!((spring.period().unwrap() - PI).abs() < 1.0e-12);
    assert_eq!(oscillator.displacement(0.0), Some(2.0));
}