uom/si/
reciprocal_length.rs1quantity! {
4 quantity: ReciprocalLength; "reciprocal length";
6 dimension: ISQ<
8 N1, Z0, Z0, Z0, Z0, Z0, Z0>; units {
16 @reciprocal_kilometer: prefix!(none) / prefix!(kilo); "km⁻¹", "reciprocal kilometer",
17 "reciprocal kilometers";
18 @reciprocal_meter: prefix!(none); "m⁻¹", "reciprocal meter", "reciprocal meters";
19 @reciprocal_decimeter: prefix!(none) / prefix!(deci); "dm⁻¹", "reciprocal decimeter",
20 "reciprocal decimeters";
21 @reciprocal_centimeter: prefix!(none) / prefix!(centi); "cm⁻¹", "reciprocal centimeter",
22 "reciprocal centimeters";
23 @reciprocal_millimeter: prefix!(none) / prefix!(milli); "mm⁻¹", "reciprocal millimeter",
24 "reciprocal millimeters";
25 @reciprocal_micrometer: prefix!(none) / prefix!(micro); "µm⁻¹", "reciprocal micrometer",
26 "reciprocal micrometers";
27 @reciprocal_nanometer: prefix!(none) / prefix!(nano); "nm⁻¹", "reciprocal nanometer",
28 "reciprocal nanometers";
29
30 @reciprocal_angstrom: prefix!(none) / 1.0_E-10; "Å⁻¹", "reciprocal ångström",
31 "reciprocal ångströms";
32 @diopter: prefix!(none); "dpt", "diopter", "diopters";
33 @rydberg_constant: 10_973_731.568_160; "R∞", "Rydberg constant", "Rydberg constants";
34 }
35}
36
37#[cfg(test)]
38mod tests {
39 storage_types! {
40 use crate::num::One;
41 use crate::si::length as l;
42 use crate::si::reciprocal_length as rl;
43 use crate::si::quantities::*;
44 use crate::tests::Test;
45
46 #[test]
47 fn check_dimension() {
48 let _: ReciprocalLength<V> = V::one()
49 / Length::new::<l::meter>(V::one());
50 }
51
52 #[test]
53 fn check_units() {
54 test::<l::kilometer, rl::reciprocal_kilometer>();
55 test::<l::meter, rl::reciprocal_meter>();
56 test::<l::decimeter, rl::reciprocal_decimeter>();
57 test::<l::centimeter, rl::reciprocal_centimeter>();
58 test::<l::millimeter, rl::reciprocal_millimeter>();
59 test::<l::micrometer, rl::reciprocal_micrometer>();
60 test::<l::nanometer, rl::reciprocal_nanometer>();
61 test::<l::angstrom, rl::reciprocal_angstrom>();
62 test::<l::meter, rl::diopter>();
63
64 fn test<L: l::Conversion<V>, RL: rl::Conversion<V>>() {
65 Test::assert_approx_eq(&ReciprocalLength::new::<RL>(V::one()),
66 &(V::one() / Length::new::<L>(V::one())));
67 }
68 }
69 }
70}