use-trigonometry 0.0.6

Utility-first trigonometry scaffolding for RustUse
Documentation
use core::f64::consts::{PI, TAU};
use use_trigonometry::{
    Angle, cos_deg, degrees_to_radians, normalize_degrees, normalize_radians, radians_to_degrees,
    sin_deg, tan_deg,
};

fn assert_close(left: f64, right: f64) {
    assert!((left - right).abs() < 1.0e-12, "left={left}, right={right}");
}

#[test]
fn direct_trigonometry_usage_covers_angle_helpers() {
    let acute = Angle::from_degrees(30.0);
    let wrapped = Angle::from_degrees(-30.0).normalized();

    assert_close(acute.radians(), PI / 6.0);
    assert_close(radians_to_degrees(acute.radians()), 30.0);
    assert_close(degrees_to_radians(90.0), PI / 2.0);
    assert_close(wrapped.degrees(), 330.0);
    assert_close(normalize_degrees(-90.0), 270.0);
    assert_close(normalize_radians(-PI / 2.0), TAU - (PI / 2.0));
    assert_close(acute.sin(), 0.5);
    assert_close(cos_deg(60.0), 0.5);
    assert_close(sin_deg(30.0), 0.5);
    assert_close(tan_deg(45.0), 1.0);
}