1quantity! {
4 quantity: Velocity; "velocity";
6 dimension: ISQ<
8 P1, Z0, N1, Z0, Z0, Z0, Z0>; units {
16 @yottameter_per_second: prefix!(yotta); "Ym/s", "yottameter per second",
17 "yottameters per second";
18 @zettameter_per_second: prefix!(zetta); "Zm/s", "zettameter per second",
19 "zettameters per second";
20 @exameter_per_second: prefix!(exa); "Em/s", "exameter per second",
21 "exameters per second";
22 @petameter_per_second: prefix!(peta); "Pm/s", "petameter per second",
23 "petameters per second";
24 @terameter_per_second: prefix!(tera); "Tm/s", "terameter per second",
25 "terameters per second";
26 @gigameter_per_second: prefix!(giga); "Gm/s", "gigameter per second",
27 "gigameters per second";
28 @megameter_per_second: prefix!(mega); "Mm/s", "megameter per second",
29 "megameters per second";
30 @kilometer_per_second: prefix!(kilo); "km/s", "kilometer per second",
31 "kilometers per second";
32 @hectometer_per_second: prefix!(hecto); "hm/s", "hectometer per second",
33 "hectometers per second";
34 @decameter_per_second: prefix!(deca); "dam/s", "decameter per second",
35 "decameters per second";
36 @meter_per_second: prefix!(none); "m/s", "meter per second", "meters per second";
37 @decimeter_per_second: prefix!(deci); "dm/s", "decimeter per second",
38 "decimeters per second";
39 @centimeter_per_second: prefix!(centi); "cm/s", "centimeter per second",
40 "centimeters per second";
41 @millimeter_per_second: prefix!(milli); "mm/s", "millimeter per second",
42 "millimeters per second";
43 @micrometer_per_second: prefix!(micro); "µm/s", "micrometer per second",
44 "micrometers per second";
45 @nanometer_per_second: prefix!(nano); "nm/s", "nanometer per second",
46 "nanometers per second";
47 @picometer_per_second: prefix!(pico); "pm/s", "picometer per second",
48 "picometers per second";
49 @femtometer_per_second: prefix!(femto); "fm/s", "femtometer per second",
50 "femtometers per second";
51 @attometer_per_second: prefix!(atto); "am/s", "attometer per second",
52 "attometers per second";
53 @zeptometer_per_second: prefix!(zepto); "zm/s", "zeptometer per second",
54 "zeptometers per second";
55 @yoctometer_per_second: prefix!(yocto); "ym/s", "yoctometer per second",
56 "yoctometers per second";
57
58 @foot_per_hour: 8.466_666_666_666_667_E-5; "ft/h", "foot per hour", "feet per hour";
59 @foot_per_minute: 5.08_E-3; "ft/min", "foot per minute", "feet per minute";
60 @foot_per_second: 3.048_E-1; "ft/s", "foot per second", "feet per second";
61 @inch_per_second: 2.54_E-2; "in/s", "inch per second", "inches per second";
62 @kilometer_per_hour: 2.777_777_777_777_778_E-1; "km/h", "kilometer per hour",
63 "kilometers per hour";
64 @knot: 5.144_444_444_444_445_E-1; "kn", "knot", "knots";
65 @mile_per_hour: 4.470_4_E-1; "mi/h", "mile per hour", "miles per hour";
66 @mile_per_minute: 2.682_24_E1; "mi/min", "mile per minute", "miles per minute";
67 @mile_per_second: 1.609_344_E3; "mi/s", "mile per second", "miles per second";
68 @millimeter_per_minute: 1.666_666_666_666_666_667_E-5; "mm/min", "millimeter per minute",
69 "millimeters per minute";
70
71 @atomic_unit_of_velocity: 2.187_691_263_64_E6; "a₀ · Eₕ/ħ", "atomic unit of velocity",
74 "atomic units of velocity";
75 @natural_unit_of_velocity: 299_792_458.0; "c", "natural unit of velocity",
77 "natural units of velocity";
78 @speed_of_light_in_vacuum: 299_792_458.0; "c", "speed of light in vacuum",
80 "speeds of light in vacuum";
81 }
82}
83
84#[cfg(test)]
85mod test {
86 storage_types! {
87 use crate::num::One;
88 use crate::si::length as l;
89 use crate::si::quantities::*;
90 use crate::si::time as t;
91 use crate::si::velocity as v;
92 use crate::tests::Test;
93
94 #[test]
95 fn check_dimension() {
96 let _: Velocity<V> = Length::new::<l::meter>(V::one())
97 / Time::new::<t::second>(V::one());
98 }
99
100 #[test]
101 fn check_units() {
102 test::<l::yottameter, t::second, v::yottameter_per_second>();
103 test::<l::zettameter, t::second, v::zettameter_per_second>();
104 test::<l::exameter, t::second, v::exameter_per_second>();
105 test::<l::petameter, t::second, v::petameter_per_second>();
106 test::<l::terameter, t::second, v::terameter_per_second>();
107 test::<l::gigameter, t::second, v::gigameter_per_second>();
108 test::<l::megameter, t::second, v::megameter_per_second>();
109 test::<l::kilometer, t::second, v::kilometer_per_second>();
110 test::<l::hectometer, t::second, v::hectometer_per_second>();
111 test::<l::decameter, t::second, v::decameter_per_second>();
112 test::<l::meter, t::second, v::meter_per_second>();
113 test::<l::decimeter, t::second, v::decimeter_per_second>();
114 test::<l::centimeter, t::second, v::centimeter_per_second>();
115 test::<l::millimeter, t::second, v::millimeter_per_second>();
116 test::<l::micrometer, t::second, v::micrometer_per_second>();
117 test::<l::nanometer, t::second, v::nanometer_per_second>();
118 test::<l::picometer, t::second, v::picometer_per_second>();
119 test::<l::femtometer, t::second, v::femtometer_per_second>();
120 test::<l::attometer, t::second, v::attometer_per_second>();
121 test::<l::zeptometer, t::second, v::zeptometer_per_second>();
122 test::<l::yoctometer, t::second, v::yoctometer_per_second>();
123
124 test::<l::foot, t::hour, v::foot_per_hour>();
125 test::<l::foot, t::minute, v::foot_per_minute>();
126 test::<l::foot, t::second, v::foot_per_second>();
127 test::<l::inch, t::second, v::inch_per_second>();
128 test::<l::kilometer, t::hour, v::kilometer_per_hour>();
129 test::<l::nautical_mile, t::hour, v::knot>();
130 test::<l::mile, t::hour, v::mile_per_hour>();
131 test::<l::mile, t::second, v::mile_per_second>();
132 test::<l::millimeter, t::minute, v::millimeter_per_minute>();
133
134 fn test<L: l::Conversion<V>, T: t::Conversion<V>, E: v::Conversion<V>>() {
135 Test::assert_eq(&Velocity::new::<E>(V::one()),
136 &(Length::new::<L>(V::one()) / Time::new::<T>(V::one())));
137 }
138 }
139 }
140}