uom/si/
angular_absement.rs1quantity! {
4 quantity: AngularAbsement; "angular absement";
6 dimension: ISQ<
8 Z0, Z0, P1, Z0, Z0, Z0, Z0>; kind: dyn crate::si::marker::AngleKind;
16 units {
17 @radian_second: prefix!(none); "rad · s", "radian second", "radian seconds";
18 @degree_second: 1.745_329_251_994_329_5_E-2; "° · s", "degree second", "degree seconds";
19 }
20}
21
22#[cfg(test)]
23mod tests {
24 storage_types! {
25 use crate::si::angular_absement as a;
26 use crate::si::angle as l;
27 use crate::si::quantities::*;
28 use crate::si::time as t;
29 use crate::tests::Test;
30 use crate::num::One;
31
32 #[test]
33 fn check_dimension() {
34 let _: AngularAbsement<V> = (Angle::new::<l::radian>(V::one())
35 * Time::new::<t::second>(V::one())).into();
36 }
37
38 #[test]
39 fn check_units() {
40 test::<l::radian, t::second, a::radian_second>();
41 test::<l::degree, t::second, a::degree_second>();
42
43 fn test<L: l::Conversion<V>, T: t::Conversion<V>, A: a::Conversion<V>>() {
44 Test::assert_eq(&AngularAbsement::new::<A>(V::one()),
45 &(Angle::new::<L>(V::one()) * Time::new::<T>(V::one())).into());
46 }
47 }
48 }
49}