diff --git a/src/si/angular_acceleration.rs b/src/si/angular_acceleration.rs new file mode 100644 index 00000000..bfe6b075 --- /dev/null +++ b/src/si/angular_acceleration.rs @@ -0,0 +1,47 @@ +//! Angular Acceleration (base unit radian per second squared, s⁻²). + +quantity! { + /// Angular Acceleration (base unit radian per second squared, s⁻²). + quantity: AngularAcceleration; "angular acceleration"; + /// Dimension of angular acceleration, T⁻² (base unit radian per second squared, s⁻²). + dimension: ISQ< + Z0, // length + Z0, // mass + N2, // time + Z0, // electric current + Z0, // thermodynamic temperature + Z0, // amount of substance + Z0>; // luminous intensity + kind: ::si::marker::AngleKind; + units { + /// Derived unit of angular acceleration. + @radian_per_second_squared: 1.0; "rad/s²", "radian per second squared", + "radians per second squared"; + @degree_per_second_squared: 1.745_329_251_994_329_5_E-2; "°/s²", + "degree per second squared", "degrees per second squared"; + } +} + +#[cfg(test)] +mod tests { + storage_types! { + use num::One; + use si::angle as a; + use si::angular_acceleration as aa; + use si::quantities::*; + use si::time as t; + use tests::Test; + + #[test] + fn check_units() { + test::(); + test::(); + + fn test, T: t::Conversion, R: aa::Conversion>() { + let square_second = Time::new::(V::one()) * Time::new::(V::one()); + Test::assert_approx_eq(&AngularAcceleration::new::(V::one()), + &(Angle::new::(V::one()) / square_second).into()); + } + } + } +} diff --git a/src/si/mod.rs b/src/si/mod.rs index 247ccaba..8f23a27f 100644 --- a/src/si/mod.rs +++ b/src/si/mod.rs @@ -38,6 +38,7 @@ system! { acceleration::Acceleration, amount_of_substance::AmountOfSubstance, angle::Angle, + angular_acceleration::AngularAcceleration, area::Area, available_energy::AvailableEnergy, capacitance::Capacitance,