bangle 0.5.0

Strongly-typed angles, specified in radians, degrees, rotations, or percentages.
Documentation
#[test]
fn equality() {
    let first = Angle::degrees(90.0);
    let second = Angle::degrees(90.0);
    assert_eq!(first, second);
}

#[test]
fn compare() {
    let first = Angle::degrees(90.0);
    let second = Angle::degrees(180.0);
    assert!(first < second);
    assert!(second > first);
}

#[test]
fn negation32() {
    let degrees = Angle::degrees(90.0f32);
    let negative = -degrees;
    assert_ulps_eq!(negative.value, -90.0);
}

#[test]
fn negation64() {
    let degrees = Angle::degrees(90.0f64);
    let negative = -degrees;
    assert_ulps_eq!(negative.value, -90.0);
}

#[test]
fn radians_plus_degrees() {
    let radians = Angle::radians(FRAC_PI_2);
    let degrees = Angle::degrees(90.0);
    let result = radians + degrees;
    assert_ulps_eq!(result.value, PI);
}

#[test]
fn radians_plus_degrees_in_place() {
    let mut radians = Angle::radians(FRAC_PI_2);
    radians += Angle::degrees(90.0);
    assert_ulps_eq!(radians.value, PI);
}

#[test]
fn radians_minus_degrees() {
    let radians = Angle::radians(PI);
    let degrees = Angle::degrees(90.0);
    let result = radians - degrees;
    assert_ulps_eq!(result.value, FRAC_PI_2);
}

#[test]
fn radians_minus_degrees_in_place() {
    let mut radians = Angle::radians(PI);
    radians -= Angle::degrees(90.0);
    assert_ulps_eq!(radians.value, FRAC_PI_2);
}

#[test]
fn radians_multiplied() {
    let radians = Angle::radians(FRAC_PI_2);
    let result = radians * 2.0;
    assert_ulps_eq!(result.value, PI);
}

#[test]
fn radians_multiplied_in_place() {
    let mut radians = Angle::radians(FRAC_PI_2);
    radians *= 2.0;
    assert_ulps_eq!(radians.value, PI);
}

#[test]
fn radians_divided() {
    let radians = Angle::radians(PI);
    let result = radians / 2.0;
    assert_ulps_eq!(result.value, FRAC_PI_2);
}

#[test]
fn radians_divided_in_place() {
    let mut radians = Angle::radians(PI);
    radians /= 2.0;
    assert_ulps_eq!(radians.value, FRAC_PI_2);
}

use approx::assert_ulps_eq;
use bangle::Angle;
use core::f32::consts::{FRAC_PI_2, PI};