uom/si/
frequency_drift.rs1quantity! {
6 quantity: FrequencyDrift; "frequency drift";
8 dimension: ISQ<
10 Z0, Z0, N2, Z0, Z0, Z0, Z0>; units {
18 @terahertz_per_second: prefix!(tera) / prefix!(none); "THz/s", "terahertz per second",
19 "terahertz per second";
20 @gigahertz_per_second: prefix!(giga) / prefix!(none); "GHz/s", "gigahertz per second",
21 "gigahertz per second";
22 @megahertz_per_second: prefix!(mega) / prefix!(none); "MHz/s", "megahertz per second",
23 "megahertz per second";
24 @kilohertz_per_second: prefix!(kilo) / prefix!(none); "kHz/s", "kilohertz per second",
25 "kilohertz per second";
26 @hertz_per_second: prefix!(none) / prefix!(none); "Hz/s", "hertz per second",
27 "hertz per second";
28 }
29}
30
31#[cfg(test)]
32mod test {
33 storage_types! {
34 use crate::num::One;
35 use crate::si::frequency_drift as fd;
36 use crate::si::frequency as f;
37 use crate::si::quantities::*;
38 use crate::si::time as t;
39 use crate::tests::Test;
40
41 #[test]
42 fn check_dimension() {
43 let _: FrequencyDrift<V> = Frequency::new::<f::hertz>(V::one())
44 / Time::new::<t::second>(V::one());
45 }
46
47 #[test]
48 fn check_units() {
49 test::<f::terahertz, t::second, fd::terahertz_per_second>();
50 test::<f::gigahertz, t::second, fd::gigahertz_per_second>();
51 test::<f::megahertz, t::second, fd::megahertz_per_second>();
52 test::<f::kilohertz, t::second, fd::kilohertz_per_second>();
53 test::<f::hertz, t::second, fd::hertz_per_second>();
54
55 fn test<F: f::Conversion<V>, T: t::Conversion<V>, FD: fd::Conversion<V>>() {
56 Test::assert_approx_eq(&FrequencyDrift::new::<FD>(V::one()),
57 &(Frequency::new::<F>(V::one())
58 / Time::new::<T>(V::one())));
59 }
60 }
61 }
62}