uom/si/
angular_velocity.rs1quantity! {
4 quantity: AngularVelocity; "angular velocity";
6 dimension: ISQ<
8 Z0, Z0, N1, Z0, Z0, Z0, Z0>; kind: dyn (crate::si::marker::AngleKind);
16 units {
17 @radian_per_second: 1.0_E0; "rad/s", "radian per second", "radians per second";
19 @degree_per_second: 1.745_329_251_994_329_5_E-2; "°/s", "degree per second",
20 "degrees per second";
21 @revolution_per_second: 6.283_185_307_179_586_E0; "rps", "revolution per second",
22 "revolutions per second";
23 @revolution_per_minute: 1.047_197_551_196_597_7_E-1; "rpm", "revolution per minute",
24 "revolutions per minute";
25 @revolution_per_hour: 1.745_329_251_994_329_6_E-3; "rph", "revolution per hour",
26 "revolutions per hour";
27 }
28}
29
30#[cfg(test)]
31mod tests {
32 storage_types! {
33 use crate::num::One;
34 use crate::si::angle as a;
35 use crate::si::angular_velocity as v;
36 use crate::si::quantities::*;
37 use crate::si::time as t;
38 use crate::tests::Test;
39
40 #[test]
41 fn check_units() {
42 test::<a::radian, t::second, v::radian_per_second>();
43 test::<a::degree, t::second, v::degree_per_second>();
44 test::<a::revolution, t::second, v::revolution_per_second>();
45 test::<a::revolution, t::minute, v::revolution_per_minute>();
46 test::<a::revolution, t::hour, v::revolution_per_hour>();
47
48 fn test<A: a::Conversion<V>, T: t::Conversion<V>, R: v::Conversion<V>>() {
49 Test::assert_approx_eq(&AngularVelocity::new::<R>(V::one()),
50 &(Angle::new::<A>(V::one()) / Time::new::<T>(V::one())).into());
51 }
52 }
53 }
54}