1#![no_std]
2#![allow(non_snake_case)]
3#![warn(missing_docs)]
4#![ doc = include_str!("../README.md")]
5
6pub use simple_si_units_macros::UnitStruct;
27pub use simple_si_units_core::NumLike;
46#[cfg(feature="serde")]
50extern crate serde;
51#[cfg(feature="num-bigfloat")]
52extern crate num_bigfloat;
53#[cfg(feature="num-complex")]
54extern crate num_complex;
55#[cfg(feature="num-rational")]
56extern crate num_rational;
57#[cfg(feature="uom")]
58extern crate uom;
59
60pub mod base;
61pub mod chemical;
62pub mod electromagnetic;
63pub mod geometry;
64pub mod mechanical;
65pub mod nuclear;
66
67#[cfg(test)]
68#[macro_use]
69extern crate std; #[cfg(test)]
73mod unit_tests {
74 use num_traits::Zero;
75 use super::base::*;
76 use super::chemical::*;
77 use super::electromagnetic::*;
78 use super::geometry::*;
79 use super::mechanical::*;
80 use super::nuclear::*;
81 fn assert_approx_equal(a: f64, b: f64, sigfigs: i32) {
83 if a.is_nan() {
84 assert!(b.is_nan());
85 } else if a.is_infinite() {
86 assert!(b.is_infinite() && a.is_sign_positive() == b.is_sign_positive());
87 } else if a.is_zero() {
88 assert!(b.is_zero());
89 } else {
90 let ypsilon = 10f64.powi(-sigfigs);
91 let max_delta = (a.abs() + b.abs()) * 0.5 * ypsilon;
92 assert!((a - b).abs() < max_delta, "Error: {} != {} within margin of {}", a, b, max_delta);
93 }
94 }
95
96 #[test]
98 fn add_subtract_test() {
99 let d1 = Distance::from_m(2.5);
102 let d2 = Distance::from_m(1.0);
103 assert_approx_equal((d1+d2).to_m(), 3.5, 9);
104 assert_approx_equal((d2+d1).to_m(), 3.5, 9);
105 assert_approx_equal((d1-d2).to_m(), 1.5, 9);
106 assert_approx_equal((d2-d1).to_m(), -1.5, 9);
107 assert_approx_equal((d1-d1).to_m(), 0.0, 9);
108 }
109 #[test]
111 fn mul_div_test() {
112 let d1 = Distance::from_m(2.5);
113 let d2 = Distance::from_m(2.0);
114 assert_approx_equal(d1/d2, 1.25, 9);
115 assert_approx_equal(d2/d1, 0.8, 9);
116 assert_approx_equal((d1*d2).to_m2(), 5.0, 9);
117 assert_approx_equal((d2*d1).to_m2(), 5.0, 9);
118 }
119 #[test]
121 fn op_assign_test() {
122 let mut d1 = Distance::from_m(2.5);
124 let mut d2 = Distance::from_m(2.0);
125 d1 += d2;
126 assert_approx_equal(d1.to_m(), 4.5, 9);
127 d2 -= d1;
128 assert_approx_equal(d2.to_m(), -2.5, 9);
129 d1 *= 2.0;
130 assert_approx_equal(d1.to_m(), 9.0, 9);
131 d2 /= -0.5;
132 assert_approx_equal(d2.to_m(), 5.0, 9);
133 }
134
135 fn mul_check<
136 'y,
137 A: std::ops::Mul<B, Output = X>+Clone+'y,
138 B: std::ops::Mul<A, Output = X>+Clone+'y,
139 X: std::cmp::PartialEq+Clone
140 >(a: &'y A, b: &'y B) -> X where
141 A: std::ops::Mul<B, Output = X>+std::ops::Mul<&'y B, Output = X>,
142 B: std::ops::Mul<A, Output = X>+std::ops::Mul<&'y A, Output = X>,
143 &'y A: std::ops::Mul<B, Output = X>, &'y B: std::ops::Mul<A, Output = X>,
144 &'y A: std::ops::Mul<&'y B, Output = X>, &'y B: std::ops::Mul<&'y A, Output = X>
145 {
146 let x1: X = a * b;
147 let x2: X = b * a;
148 let x3: X = a.clone() * b.clone();
149 let x4: X = b.clone() * a.clone();
150 let x5: X = a * b.clone();
151 let x6: X = b * a.clone();
152 let x7: X = a.clone() * b;
153 let x8: X = b.clone() * a;
154 assert!((x1.eq(&x2)));
156 assert!((x1.eq(&x3)));
157 assert!((x1.eq(&x4)));
158 assert!((x1.eq(&x5)));
159 assert!((x1.eq(&x6)));
160 assert!((x1.eq(&x7)));
161 assert!((x1.eq(&x8)));
162 return x1;
163 }
164
165 fn div_check<
166 'y,
167 A: std::ops::Div<B, Output = X>+Clone+'y,
168 B: Clone+'y,
169 X: std::cmp::PartialEq+Clone
170 >(a: &'y A, b: &'y B) -> X where
171 A: std::ops::Div<B, Output = X>+std::ops::Div<&'y B, Output = X>,
172 &'y A: std::ops::Div<B, Output = X>+std::ops::Div<&'y B, Output = X>
173 {
174 let x1: X = a / b;
175 let x2: X = a.clone() / b.clone();
176 let x3: X = a / b.clone();
177 let x4: X = a.clone() / b;
178 assert!((x1.eq(&x2)));
179 assert!((x1.eq(&x3)));
180 assert!((x1.eq(&x4)));
181 return x1;
182 }
183
184 macro_rules! mul_div_check {
185 ($a: expr, $b: expr, $c: expr, $d: expr) => {
186 assert_eq!(($a) * ($b), ($c));
187 assert_eq!(($a) * &($b), ($c));
188 assert_eq!(&($a) * ($b), ($c));
189 assert_eq!(&($a) * &($b), ($c));
190 assert_eq!(($b) * ($a), ($c));
191 assert_eq!(($b) * &($a), ($c));
192 assert_eq!(&($b) * ($a), ($c));
193 assert_eq!(&($b) * &($a), ($c));
194 assert_eq!(($a) / ($b), ($d));
195 assert_eq!(($a) / &($b), ($d));
196 assert_eq!(&($a) / ($b), ($d));
197 assert_eq!(&($a) / &($b), ($d));
198 }
199 }
200
201 macro_rules! check_scalar_mul_div {
202 ($a: expr, $b: expr) => {
203 let x = ($a).clone();
204 let y = ($b).clone();
205 let xy = x.clone() * y.clone();
206 let xovery = x.clone() / y.clone();
207 mul_div_check!(Amount{mol: x.clone()}, y.clone(), Amount{mol: xy.clone()}, Amount{mol: xovery.clone()});
208 mul_div_check!(Current{A: x.clone()}, y.clone(), Current{A: xy.clone()}, Current{A: xovery.clone()});
209 mul_div_check!(Distance{m: x.clone()}, y.clone(), Distance{m: xy.clone()}, Distance{m: xovery.clone()});
210 mul_div_check!(Luminosity{cd: x.clone()}, y.clone(), Luminosity{cd: xy.clone()}, Luminosity{cd: xovery.clone()});
211 mul_div_check!(Mass{kg: x.clone()}, y.clone(), Mass{kg: xy.clone()}, Mass{kg: xovery.clone()});
212 mul_div_check!(Temperature{K: x.clone()}, y.clone(), Temperature{K: xy.clone()}, Temperature{K: xovery.clone()});
213 mul_div_check!(Time{s: x.clone()}, y.clone(), Time{s: xy.clone()}, Time{s: xovery.clone()});
214 mul_div_check!(CatalyticActivity{molps: x.clone()}, y.clone(), CatalyticActivity{molps: xy.clone()}, CatalyticActivity{molps: xovery.clone()});
215 mul_div_check!(Concentration{molpm3: x.clone()}, y.clone(), Concentration{molpm3: xy.clone()}, Concentration{molpm3: xovery.clone()});
216 mul_div_check!(Molality{molpkg: x.clone()}, y.clone(), Molality{molpkg: xy.clone()}, Molality{molpkg: xovery.clone()});
217 mul_div_check!(MolarMass{kgpmol: x.clone()}, y.clone(), MolarMass{kgpmol: xy.clone()}, MolarMass{kgpmol: xovery.clone()});
218 mul_div_check!(SpecificHeatCapacity{J_per_kgK: x.clone()}, y.clone(), SpecificHeatCapacity{J_per_kgK: xy.clone()}, SpecificHeatCapacity{J_per_kgK: xovery.clone()});
219 mul_div_check!(Capacitance{F: x.clone()}, y.clone(), Capacitance{F: xy.clone()}, Capacitance{F: xovery.clone()});
220 mul_div_check!(Charge{C: x.clone()}, y.clone(), Charge{C: xy.clone()}, Charge{C: xovery.clone()});
221 mul_div_check!(Conductance{S: x.clone()}, y.clone(), Conductance{S: xy.clone()}, Conductance{S: xovery.clone()});
222 mul_div_check!(Illuminance{lux: x.clone()}, y.clone(), Illuminance{lux: xy.clone()}, Illuminance{lux: xovery.clone()});
223 mul_div_check!(Inductance{H: x.clone()}, y.clone(), Inductance{H: xy.clone()}, Inductance{H: xovery.clone()});
224 mul_div_check!(LuminousFlux{lm: x.clone()}, y.clone(), LuminousFlux{lm: xy.clone()}, LuminousFlux{lm: xovery.clone()});
225 mul_div_check!(MagneticFlux{Wb: x.clone()}, y.clone(), MagneticFlux{Wb: xy.clone()}, MagneticFlux{Wb: xovery.clone()});
226 mul_div_check!(MagneticFluxDensity{T: x.clone()}, y.clone(), MagneticFluxDensity{T: xy.clone()}, MagneticFluxDensity{T: xovery.clone()});
227 mul_div_check!(Resistance{Ohm: x.clone()}, y.clone(), Resistance{Ohm: xy.clone()}, Resistance{Ohm: xovery.clone()});
228 mul_div_check!(Voltage{V: x.clone()}, y.clone(), Voltage{V: xy.clone()}, Voltage{V: xovery.clone()});
229 mul_div_check!(Angle{rad: x.clone()}, y.clone(), Angle{rad: xy.clone()}, Angle{rad: xovery.clone()});
230 mul_div_check!(Area{m2: x.clone()}, y.clone(), Area{m2: xy.clone()}, Area{m2: xovery.clone()});
231 mul_div_check!(SolidAngle{sr: x.clone()}, y.clone(), SolidAngle{sr: xy.clone()}, SolidAngle{sr: xovery.clone()});
232 mul_div_check!(Volume{m3: x.clone()}, y.clone(), Volume{m3: xy.clone()}, Volume{m3: xovery.clone()});
233 mul_div_check!(Acceleration{mps2: x.clone()}, y.clone(), Acceleration{mps2: xy.clone()}, Acceleration{mps2: xovery.clone()});
234 mul_div_check!(AngularAcceleration{radps2: x.clone()}, y.clone(), AngularAcceleration{radps2: xy.clone()}, AngularAcceleration{radps2: xovery.clone()});
235 mul_div_check!(AngularMomentum{kgm2radps: x.clone()}, y.clone(), AngularMomentum{kgm2radps: xy.clone()}, AngularMomentum{kgm2radps: xovery.clone()});
236 mul_div_check!(AngularVelocity{radps: x.clone()}, y.clone(), AngularVelocity{radps: xy.clone()}, AngularVelocity{radps: xovery.clone()});
237 mul_div_check!(AreaDensity{kgpm2: x.clone()}, y.clone(), AreaDensity{kgpm2: xy.clone()}, AreaDensity{kgpm2: xovery.clone()});
238 mul_div_check!(Density{kgpm3: x.clone()}, y.clone(), Density{kgpm3: xy.clone()}, Density{kgpm3: xovery.clone()});
239 mul_div_check!(Energy{J: x.clone()}, y.clone(), Energy{J: xy.clone()}, Energy{J: xovery.clone()});
240 mul_div_check!(Force{N: x.clone()}, y.clone(), Force{N: xy.clone()}, Force{N: xovery.clone()});
241 mul_div_check!(Frequency{Hz: x.clone()}, y.clone(), Frequency{Hz: xy.clone()}, Frequency{Hz: xovery.clone()});
242 mul_div_check!(MomentOfInertia{kgm2: x.clone()}, y.clone(), MomentOfInertia{kgm2: xy.clone()}, MomentOfInertia{kgm2: xovery.clone()});
243 mul_div_check!(Momentum{kgmps: x.clone()}, y.clone(), Momentum{kgmps: xy.clone()}, Momentum{kgmps: xovery.clone()});
244 mul_div_check!(Power{W: x.clone()}, y.clone(), Power{W: xy.clone()}, Power{W: xovery.clone()});
245 mul_div_check!(Pressure{Pa: x.clone()}, y.clone(), Pressure{Pa: xy.clone()}, Pressure{Pa: xovery.clone()});
246 mul_div_check!(Torque{Nm: x.clone()}, y.clone(), Torque{Nm: xy.clone()}, Torque{Nm: xovery.clone()});
247 mul_div_check!(Velocity{mps: x.clone()}, y.clone(), Velocity{mps: xy.clone()}, Velocity{mps: xovery.clone()});
248 mul_div_check!(AbsorbedDose{Gy: x.clone()}, y.clone(), AbsorbedDose{Gy: xy.clone()}, AbsorbedDose{Gy: xovery.clone()});
249 mul_div_check!(DoseEquivalent{Sv: x.clone()}, y.clone(), DoseEquivalent{Sv: xy.clone()}, DoseEquivalent{Sv: xovery.clone()});
250 mul_div_check!(Radioactivity{Bq: x.clone()}, y.clone(), Radioactivity{Bq: xy.clone()}, Radioactivity{Bq: xovery.clone()});
251 mul_div_check!(InverseAmount{per_mol: x.clone()}, y.clone(), InverseAmount{per_mol: xy.clone()}, InverseAmount{per_mol: xovery.clone()});
252 mul_div_check!(InverseCurrent{per_A: x.clone()}, y.clone(), InverseCurrent{per_A: xy.clone()}, InverseCurrent{per_A: xovery.clone()});
253 mul_div_check!(InverseDistance{per_m: x.clone()}, y.clone(), InverseDistance{per_m: xy.clone()}, InverseDistance{per_m: xovery.clone()});
254 mul_div_check!(InverseLuminosity{per_cd: x.clone()}, y.clone(), InverseLuminosity{per_cd: xy.clone()}, InverseLuminosity{per_cd: xovery.clone()});
255 mul_div_check!(InverseMass{per_kg: x.clone()}, y.clone(), InverseMass{per_kg: xy.clone()}, InverseMass{per_kg: xovery.clone()});
256 mul_div_check!(InverseTemperature{per_K: x.clone()}, y.clone(), InverseTemperature{per_K: xy.clone()}, InverseTemperature{per_K: xovery.clone()});
257 mul_div_check!(InverseCatalyticActivity{s_per_mol: x.clone()}, y.clone(), InverseCatalyticActivity{s_per_mol: xy.clone()}, InverseCatalyticActivity{s_per_mol: xovery.clone()});
258 mul_div_check!(InverseSpecificHeatCapacity{kgK_per_J: x.clone()}, y.clone(), InverseSpecificHeatCapacity{kgK_per_J: xy.clone()}, InverseSpecificHeatCapacity{kgK_per_J: xovery.clone()});
259 mul_div_check!(MolarVolume{m3_per_mol: x.clone()}, y.clone(), MolarVolume{m3_per_mol: xy.clone()}, MolarVolume{m3_per_mol: xovery.clone()});
260 mul_div_check!(AreaPerLumen{m2_per_lm: x.clone()}, y.clone(), AreaPerLumen{m2_per_lm: xy.clone()}, AreaPerLumen{m2_per_lm: xovery.clone()});
261 mul_div_check!(Elastance{per_F: x.clone()}, y.clone(), Elastance{per_F: xy.clone()}, Elastance{per_F: xovery.clone()});
262 mul_div_check!(InverseCharge{per_C: x.clone()}, y.clone(), InverseCharge{per_C: xy.clone()}, InverseCharge{per_C: xovery.clone()});
263 mul_div_check!(InverseInductance{per_H: x.clone()}, y.clone(), InverseInductance{per_H: xy.clone()}, InverseInductance{per_H: xovery.clone()});
264 mul_div_check!(InverseLuminousFlux{per_lm: x.clone()}, y.clone(), InverseLuminousFlux{per_lm: xy.clone()}, InverseLuminousFlux{per_lm: xovery.clone()});
265 mul_div_check!(InverseMagneticFlux{per_Wb: x.clone()}, y.clone(), InverseMagneticFlux{per_Wb: xy.clone()}, InverseMagneticFlux{per_Wb: xovery.clone()});
266 mul_div_check!(InverseMagneticFluxDensity{m2_per_Wb: x.clone()}, y.clone(), InverseMagneticFluxDensity{m2_per_Wb: xy.clone()}, InverseMagneticFluxDensity{m2_per_Wb: xovery.clone()});
267 mul_div_check!(InverseVoltage{per_V: x.clone()}, y.clone(), InverseVoltage{per_V: xy.clone()}, InverseVoltage{per_V: xovery.clone()});
268 mul_div_check!(InverseAngle{per_rad: x.clone()}, y.clone(), InverseAngle{per_rad: xy.clone()}, InverseAngle{per_rad: xovery.clone()});
269 mul_div_check!(InverseArea{per_m2: x.clone()}, y.clone(), InverseArea{per_m2: xy.clone()}, InverseArea{per_m2: xovery.clone()});
270 mul_div_check!(InverseSolidAngle{per_sr: x.clone()}, y.clone(), InverseSolidAngle{per_sr: xy.clone()}, InverseSolidAngle{per_sr: xovery.clone()});
271 mul_div_check!(InverseVolume{per_m3: x.clone()}, y.clone(), InverseVolume{per_m3: xy.clone()}, InverseVolume{per_m3: xovery.clone()});
272 mul_div_check!(AreaPerMass{m2_per_kg: x.clone()}, y.clone(), AreaPerMass{m2_per_kg: xy.clone()}, AreaPerMass{m2_per_kg: xovery.clone()});
273 mul_div_check!(InverseAcceleration{s2pm: x.clone()}, y.clone(), InverseAcceleration{s2pm: xy.clone()}, InverseAcceleration{s2pm: xovery.clone()});
274 mul_div_check!(InverseAngularAcceleration{s2prad: x.clone()}, y.clone(), InverseAngularAcceleration{s2prad: xy.clone()}, InverseAngularAcceleration{s2prad: xovery.clone()});
275 mul_div_check!(InverseAngularMomentum{s_per_kgm2rad: x.clone()}, y.clone(), InverseAngularMomentum{s_per_kgm2rad: xy.clone()}, InverseAngularMomentum{s_per_kgm2rad: xovery.clone()});
276 mul_div_check!(InverseAngularVelocity{s_per_rad: x.clone()}, y.clone(), InverseAngularVelocity{s_per_rad: xy.clone()}, InverseAngularVelocity{s_per_rad: xovery.clone()});
277 mul_div_check!(InverseEnergy{per_J: x.clone()}, y.clone(), InverseEnergy{per_J: xy.clone()}, InverseEnergy{per_J: xovery.clone()});
278 mul_div_check!(InverseForce{per_N: x.clone()}, y.clone(), InverseForce{per_N: xy.clone()}, InverseForce{per_N: xovery.clone()});
279 mul_div_check!(InverseMomentOfInertia{per_kgm2: x.clone()}, y.clone(), InverseMomentOfInertia{per_kgm2: xy.clone()}, InverseMomentOfInertia{per_kgm2: xovery.clone()});
280 mul_div_check!(InverseMomentum{s_per_kgm: x.clone()}, y.clone(), InverseMomentum{s_per_kgm: xy.clone()}, InverseMomentum{s_per_kgm: xovery.clone()});
281 mul_div_check!(InversePower{per_W: x.clone()}, y.clone(), InversePower{per_W: xy.clone()}, InversePower{per_W: xovery.clone()});
282 mul_div_check!(InversePressure{per_Pa: x.clone()}, y.clone(), InversePressure{per_Pa: xy.clone()}, InversePressure{per_Pa: xovery.clone()});
283 mul_div_check!(InverseTorque{per_Nm: x.clone()}, y.clone(), InverseTorque{per_Nm: xy.clone()}, InverseTorque{per_Nm: xovery.clone()});
284 mul_div_check!(TimePerDistance{spm: x.clone()}, y.clone(), TimePerDistance{spm: xy.clone()}, TimePerDistance{spm: xovery.clone()});
285 mul_div_check!(VolumePerMass{m3_per_kg: x.clone()}, y.clone(), VolumePerMass{m3_per_kg: xy.clone()}, VolumePerMass{m3_per_kg: xovery.clone()});
286 mul_div_check!(InverseAbsorbedDose{per_Gy: x.clone()}, y.clone(), InverseAbsorbedDose{per_Gy: xy.clone()}, InverseAbsorbedDose{per_Gy: xovery.clone()});
287 mul_div_check!(InverseDoseEquivalent{per_Sv: x.clone()}, y.clone(), InverseDoseEquivalent{per_Sv: xy.clone()}, InverseDoseEquivalent{per_Sv: xovery.clone()});
288 }
289}
290
291 #[test]
292 #[cfg(feature="num-complex")]
293 fn test_complex_scalar_multiply() {
294 use num_complex::{Complex32, Complex64};
295 let x = Complex64::new(1.2, 3.4);
296 let y = Complex64::new(5.6, 7.8);
297 check_scalar_mul_div!(x, y);
298 let x = Complex32::new(1.2, 3.4);
299 let y = Complex32::new(5.6, 7.8);
300 check_scalar_mul_div!(x, y);
301 }
302
303 #[test]
304 #[cfg(feature="num-bigfloat")]
305 fn test_bigfloat_scalar_multiply() {
306 use num_bigfloat::BigFloat;
307 let x = BigFloat::from(4.2);
308 let y = BigFloat::from(2.1);
309 check_scalar_mul_div!(x, y);
310 }
311
312 #[test]
315 fn unit_names_and_symbols_test() {
316 assert!(Amount::<f64>::unit_name().eq("moles"));
317 assert!(Amount::<f64>::unit_symbol().eq("mol"));
318 assert!(Current::<f64>::unit_name().eq("amperes"));
319 assert!(Current::<f64>::unit_symbol().eq("A"));
320 assert!(Distance::<f64>::unit_name().eq("meters"));
321 assert!(Distance::<f64>::unit_symbol().eq("m"));
322 assert!(Luminosity::<f64>::unit_name().eq("candela"));
323 assert!(Luminosity::<f64>::unit_symbol().eq("cd"));
324 assert!(Mass::<f64>::unit_name().eq("kilograms"));
325 assert!(Mass::<f64>::unit_symbol().eq("kg"));
326 assert!(Temperature::<f64>::unit_name().eq("degrees kelvin"));
327 assert!(Temperature::<f64>::unit_symbol().eq("K"));
328 assert!(Time::<f64>::unit_name().eq("seconds"));
329 assert!(Time::<f64>::unit_symbol().eq("s"));
330 assert!(CatalyticActivity::<f64>::unit_name().eq("moles per second"));
331 assert!(CatalyticActivity::<f64>::unit_symbol().eq("mol/s"));
332 assert!(Concentration::<f64>::unit_name().eq("moles per cubic meter"));
333 assert!(Concentration::<f64>::unit_symbol().eq("mol/m³"));
334 assert!(Molality::<f64>::unit_name().eq("moles per kilogram"));
335 assert!(Molality::<f64>::unit_symbol().eq("mol/kg"));
336 assert!(MolarMass::<f64>::unit_name().eq("kilograms per mole"));
337 assert!(MolarMass::<f64>::unit_symbol().eq("kg/mol"));
338 assert!(SpecificHeatCapacity::<f64>::unit_name().eq("joules per kilogram per kelvin"));
339 assert!(SpecificHeatCapacity::<f64>::unit_symbol().eq("J/kg·K"));
340 assert!(Capacitance::<f64>::unit_name().eq("farads"));
341 assert!(Capacitance::<f64>::unit_symbol().eq("F"));
342 assert!(Charge::<f64>::unit_name().eq("coulombs"));
343 assert!(Charge::<f64>::unit_symbol().eq("C"));
344 assert!(Conductance::<f64>::unit_name().eq("siemens"));
345 assert!(Conductance::<f64>::unit_symbol().eq("S"));
346 assert!(Illuminance::<f64>::unit_name().eq("lux"));
347 assert!(Illuminance::<f64>::unit_symbol().eq("lux"));
348 assert!(Inductance::<f64>::unit_name().eq("henries"));
349 assert!(Inductance::<f64>::unit_symbol().eq("H"));
350 assert!(LuminousFlux::<f64>::unit_name().eq("lumens"));
351 assert!(LuminousFlux::<f64>::unit_symbol().eq("lm"));
352 assert!(MagneticFlux::<f64>::unit_name().eq("webers"));
353 assert!(MagneticFlux::<f64>::unit_symbol().eq("Wb"));
354 assert!(MagneticFluxDensity::<f64>::unit_name().eq("teslas"));
355 assert!(MagneticFluxDensity::<f64>::unit_symbol().eq("T"));
356 assert!(Resistance::<f64>::unit_name().eq("ohms"));
357 assert!(Resistance::<f64>::unit_symbol().eq("Ohm"));
358 assert!(Voltage::<f64>::unit_name().eq("volts"));
359 assert!(Voltage::<f64>::unit_symbol().eq("V"));
360 assert!(Angle::<f64>::unit_name().eq("radians"));
361 assert!(Angle::<f64>::unit_symbol().eq("rad"));
362 assert!(Area::<f64>::unit_name().eq("square meters"));
363 assert!(Area::<f64>::unit_symbol().eq("m²"));
364 assert!(SolidAngle::<f64>::unit_name().eq("steradian"));
365 assert!(SolidAngle::<f64>::unit_symbol().eq("sr"));
366 assert!(Volume::<f64>::unit_name().eq("cubic meters"));
367 assert!(Volume::<f64>::unit_symbol().eq("m³"));
368 assert!(Acceleration::<f64>::unit_name().eq("meters per second squared"));
369 assert!(Acceleration::<f64>::unit_symbol().eq("m/s²"));
370 assert!(AngularAcceleration::<f64>::unit_name().eq("radians per second squared"));
371 assert!(AngularAcceleration::<f64>::unit_symbol().eq("rad/s²"));
372 assert!(AngularMomentum::<f64>::unit_name().eq("kilogram meters squared radians per second"));
373 assert!(AngularMomentum::<f64>::unit_symbol().eq("kg·m²·rad/s"));
374 assert!(AngularVelocity::<f64>::unit_name().eq("radians per second"));
375 assert!(AngularVelocity::<f64>::unit_symbol().eq("rad/s"));
376 assert!(AreaDensity::<f64>::unit_name().eq("kilograms per square meter"));
377 assert!(AreaDensity::<f64>::unit_symbol().eq("kg/m²"));
378 assert!(Density::<f64>::unit_name().eq("kilograms per cubic meter"));
379 assert!(Density::<f64>::unit_symbol().eq("kg/m³"));
380 assert!(Energy::<f64>::unit_name().eq("joules"));
381 assert!(Energy::<f64>::unit_symbol().eq("J"));
382 assert!(Force::<f64>::unit_name().eq("newtons"));
383 assert!(Force::<f64>::unit_symbol().eq("N"));
384 assert!(Frequency::<f64>::unit_name().eq("hertz"));
385 assert!(Frequency::<f64>::unit_symbol().eq("Hz"));
386 assert!(MomentOfInertia::<f64>::unit_name().eq("kilogram meters squared"));
387 assert!(MomentOfInertia::<f64>::unit_symbol().eq("kg·m²"));
388 assert!(Momentum::<f64>::unit_name().eq("kilogram meters per second"));
389 assert!(Momentum::<f64>::unit_symbol().eq("kg·m/s"));
390 assert!(Power::<f64>::unit_name().eq("watts"));
391 assert!(Power::<f64>::unit_symbol().eq("W"));
392 assert!(Pressure::<f64>::unit_name().eq("pascals"));
393 assert!(Pressure::<f64>::unit_symbol().eq("Pa"));
394 assert!(Torque::<f64>::unit_name().eq("newton meters"));
395 assert!(Torque::<f64>::unit_symbol().eq("Nm"));
396 assert!(Velocity::<f64>::unit_name().eq("meters per second"));
397 assert!(Velocity::<f64>::unit_symbol().eq("m/s"));
398 assert!(AbsorbedDose::<f64>::unit_name().eq("grays"));
399 assert!(AbsorbedDose::<f64>::unit_symbol().eq("Gy"));
400 assert!(DoseEquivalent::<f64>::unit_name().eq("sieverts"));
401 assert!(DoseEquivalent::<f64>::unit_symbol().eq("Sv"));
402 assert!(Radioactivity::<f64>::unit_name().eq("becquerels"));
403 assert!(Radioactivity::<f64>::unit_symbol().eq("Bq"));
404 assert!(InverseAmount::<f64>::unit_name().eq("inverse moles"));
405 assert!(InverseAmount::<f64>::unit_symbol().eq("1/mol"));
406 assert!(InverseCurrent::<f64>::unit_name().eq("inverse amperes"));
407 assert!(InverseCurrent::<f64>::unit_symbol().eq("1/A"));
408 assert!(InverseDistance::<f64>::unit_name().eq("inverse meters"));
409 assert!(InverseDistance::<f64>::unit_symbol().eq("1/m"));
410 assert!(InverseLuminosity::<f64>::unit_name().eq("inverse candela"));
411 assert!(InverseLuminosity::<f64>::unit_symbol().eq("1/cd"));
412 assert!(InverseMass::<f64>::unit_name().eq("inverse kilograms"));
413 assert!(InverseMass::<f64>::unit_symbol().eq("1/kg"));
414 assert!(InverseTemperature::<f64>::unit_name().eq("inverse degrees kelvin"));
415 assert!(InverseTemperature::<f64>::unit_symbol().eq("1/K"));
416 assert!(InverseCatalyticActivity::<f64>::unit_name().eq("seconds per mole"));
417 assert!(InverseCatalyticActivity::<f64>::unit_symbol().eq("s/mol"));
418 assert!(InverseSpecificHeatCapacity::<f64>::unit_name().eq("kilogram per kelvin per joules"));
419 assert!(InverseSpecificHeatCapacity::<f64>::unit_symbol().eq("kg·K/J"));
420 assert!(MolarVolume::<f64>::unit_name().eq("cubic meters per mole"));
421 assert!(MolarVolume::<f64>::unit_symbol().eq("m³/mol"));
422 assert!(AreaPerLumen::<f64>::unit_name().eq("square meters per lumen"));
423 assert!(AreaPerLumen::<f64>::unit_symbol().eq("m²/lm"));
424 assert!(Elastance::<f64>::unit_name().eq("inverse farads"));
425 assert!(Elastance::<f64>::unit_symbol().eq("1/F"));
426 assert!(InverseCharge::<f64>::unit_name().eq("inverse coulombs"));
427 assert!(InverseCharge::<f64>::unit_symbol().eq("1/C"));
428 assert!(InverseInductance::<f64>::unit_name().eq("inverse henries"));
429 assert!(InverseInductance::<f64>::unit_symbol().eq("1/H"));
430 assert!(InverseLuminousFlux::<f64>::unit_name().eq("inverse lumens"));
431 assert!(InverseLuminousFlux::<f64>::unit_symbol().eq("1/lm"));
432 assert!(InverseMagneticFlux::<f64>::unit_name().eq("inverse webers"));
433 assert!(InverseMagneticFlux::<f64>::unit_symbol().eq("1/Wb"));
434 assert!(InverseMagneticFluxDensity::<f64>::unit_name().eq("square meters per weber"));
435 assert!(InverseMagneticFluxDensity::<f64>::unit_symbol().eq("m²/Wb"));
436 assert!(InverseVoltage::<f64>::unit_name().eq("inverse volts"));
437 assert!(InverseVoltage::<f64>::unit_symbol().eq("1/V"));
438 assert!(InverseAngle::<f64>::unit_name().eq("inverse radians"));
439 assert!(InverseAngle::<f64>::unit_symbol().eq("1/rad"));
440 assert!(InverseArea::<f64>::unit_name().eq("inverse square meters"));
441 assert!(InverseArea::<f64>::unit_symbol().eq("1/m²"));
442 assert!(InverseSolidAngle::<f64>::unit_name().eq("inverse steradian"));
443 assert!(InverseSolidAngle::<f64>::unit_symbol().eq("1/sr"));
444 assert!(InverseVolume::<f64>::unit_name().eq("inverse cubic meters"));
445 assert!(InverseVolume::<f64>::unit_symbol().eq("1/m³"));
446 assert!(AreaPerMass::<f64>::unit_name().eq("square meters per kilogram"));
447 assert!(AreaPerMass::<f64>::unit_symbol().eq("m²/kg"));
448 assert!(InverseAcceleration::<f64>::unit_name().eq("seconds squared per meter"));
449 assert!(InverseAcceleration::<f64>::unit_symbol().eq("s²/m"));
450 assert!(InverseAngularAcceleration::<f64>::unit_name().eq("seconds squared per radian"));
451 assert!(InverseAngularAcceleration::<f64>::unit_symbol().eq("s²/rad"));
452 assert!(InverseAngularMomentum::<f64>::unit_name().eq("seconds per kilogram meters squared radian"));
453 assert!(InverseAngularMomentum::<f64>::unit_symbol().eq("s/kg·m²·rad"));
454 assert!(InverseAngularVelocity::<f64>::unit_name().eq("seconds per radian"));
455 assert!(InverseAngularVelocity::<f64>::unit_symbol().eq("s/rad"));
456 assert!(InverseEnergy::<f64>::unit_name().eq("inverse joules"));
457 assert!(InverseEnergy::<f64>::unit_symbol().eq("1/J"));
458 assert!(InverseForce::<f64>::unit_name().eq("inverse newtons"));
459 assert!(InverseForce::<f64>::unit_symbol().eq("1/N"));
460 assert!(InverseMomentOfInertia::<f64>::unit_name().eq("inverse kilogram meters squared"));
461 assert!(InverseMomentOfInertia::<f64>::unit_symbol().eq("1/kg·m²"));
462 assert!(InverseMomentum::<f64>::unit_name().eq("seconds per kilogram meter"));
463 assert!(InverseMomentum::<f64>::unit_symbol().eq("s/kg·m"));
464 assert!(InversePower::<f64>::unit_name().eq("inverse watts"));
465 assert!(InversePower::<f64>::unit_symbol().eq("1/W"));
466 assert!(InversePressure::<f64>::unit_name().eq("inverse pascals"));
467 assert!(InversePressure::<f64>::unit_symbol().eq("1/Pa"));
468 assert!(InverseTorque::<f64>::unit_name().eq("inverse newton meters"));
469 assert!(InverseTorque::<f64>::unit_symbol().eq("1/Nm"));
470 assert!(TimePerDistance::<f64>::unit_name().eq("seconds per meter"));
471 assert!(TimePerDistance::<f64>::unit_symbol().eq("s/m"));
472 assert!(VolumePerMass::<f64>::unit_name().eq("cubic meters per kilogram"));
473 assert!(VolumePerMass::<f64>::unit_symbol().eq("m³/kg"));
474 assert!(InverseAbsorbedDose::<f64>::unit_name().eq("inverse grays"));
475 assert!(InverseAbsorbedDose::<f64>::unit_symbol().eq("1/Gy"));
476 assert!(InverseDoseEquivalent::<f64>::unit_name().eq("inverse sieverts"));
477 assert!(InverseDoseEquivalent::<f64>::unit_symbol().eq("1/Sv"));
478 }
479
480 #[test]
481 fn unit_print_display_test() {
482 println!("{}", Amount{mol: 1});
483 println!("{}", Current{A: 1});
484 println!("{}", Distance{m: 1});
485 println!("{}", Luminosity{cd: 1});
486 println!("{}", Mass{kg: 1});
487 println!("{}", Temperature{K: 1});
488 println!("{}", Time{s: 1});
489 println!("{}", CatalyticActivity{molps: 1});
490 println!("{}", Concentration{molpm3: 1});
491 println!("{}", Molality{molpkg: 1});
492 println!("{}", MolarMass{kgpmol: 1});
493 println!("{}", SpecificHeatCapacity{J_per_kgK: 1});
494 println!("{}", Capacitance{F: 1});
495 println!("{}", Charge{C: 1});
496 println!("{}", Conductance{S: 1});
497 println!("{}", Illuminance{lux: 1});
498 println!("{}", Inductance{H: 1});
499 println!("{}", LuminousFlux{lm: 1});
500 println!("{}", MagneticFlux{Wb: 1});
501 println!("{}", MagneticFluxDensity{T: 1});
502 println!("{}", Resistance{Ohm: 1});
503 println!("{}", Voltage{V: 1});
504 println!("{}", Angle{rad: 1});
505 println!("{}", Area{m2: 1});
506 println!("{}", SolidAngle{sr: 1});
507 println!("{}", Volume{m3: 1});
508 println!("{}", Acceleration{mps2: 1});
509 println!("{}", AngularAcceleration{radps2: 1});
510 println!("{}", AngularMomentum{kgm2radps: 1});
511 println!("{}", AngularVelocity{radps: 1});
512 println!("{}", AreaDensity{kgpm2: 1});
513 println!("{}", Density{kgpm3: 1});
514 println!("{}", Energy{J: 1});
515 println!("{}", Force{N: 1});
516 println!("{}", Frequency{Hz: 1});
517 println!("{}", MomentOfInertia{kgm2: 1});
518 println!("{}", Momentum{kgmps: 1});
519 println!("{}", Power{W: 1});
520 println!("{}", Pressure{Pa: 1});
521 println!("{}", Torque{Nm: 1});
522 println!("{}", Velocity{mps: 1});
523 println!("{}", AbsorbedDose{Gy: 1});
524 println!("{}", DoseEquivalent{Sv: 1});
525 println!("{}", Radioactivity{Bq: 1});
526 println!("{}", InverseAmount{per_mol: 1});
527 println!("{}", InverseCurrent{per_A: 1});
528 println!("{}", InverseDistance{per_m: 1});
529 println!("{}", InverseLuminosity{per_cd: 1});
530 println!("{}", InverseMass{per_kg: 1});
531 println!("{}", InverseTemperature{per_K: 1});
532 println!("{}", InverseCatalyticActivity{s_per_mol: 1});
533 println!("{}", InverseSpecificHeatCapacity{kgK_per_J: 1});
534 println!("{}", MolarVolume{m3_per_mol: 1});
535 println!("{}", AreaPerLumen{m2_per_lm: 1});
536 println!("{}", Elastance{per_F: 1});
537 println!("{}", InverseCharge{per_C: 1});
538 println!("{}", InverseInductance{per_H: 1});
539 println!("{}", InverseLuminousFlux{per_lm: 1});
540 println!("{}", InverseMagneticFlux{per_Wb: 1});
541 println!("{}", InverseMagneticFluxDensity{m2_per_Wb: 1});
542 println!("{}", InverseVoltage{per_V: 1});
543 println!("{}", InverseAngle{per_rad: 1});
544 println!("{}", InverseArea{per_m2: 1});
545 println!("{}", InverseSolidAngle{per_sr: 1});
546 println!("{}", InverseVolume{per_m3: 1});
547 println!("{}", AreaPerMass{m2_per_kg: 1});
548 println!("{}", InverseAcceleration{s2pm: 1});
549 println!("{}", InverseAngularAcceleration{s2prad: 1});
550 println!("{}", InverseAngularMomentum{s_per_kgm2rad: 1});
551 println!("{}", InverseAngularVelocity{s_per_rad: 1});
552 println!("{}", InverseEnergy{per_J: 1});
553 println!("{}", InverseForce{per_N: 1});
554 println!("{}", InverseMomentOfInertia{per_kgm2: 1});
555 println!("{}", InverseMomentum{s_per_kgm: 1});
556 println!("{}", InversePower{per_W: 1});
557 println!("{}", InversePressure{per_Pa: 1});
558 println!("{}", InverseTorque{per_Nm: 1});
559 println!("{}", TimePerDistance{spm: 1});
560 println!("{}", VolumePerMass{m3_per_kg: 1});
561 println!("{}", InverseAbsorbedDose{per_Gy: 1});
562 println!("{}", InverseDoseEquivalent{per_Sv: 1});
563 }
564
565 #[test]
566 fn test_unit_converions() {
567 let x = 4.5f64;
568 let y = 2.5f64;
569 assert_eq!(div_check(&Amount{mol: x}, &Time{s: y}), CatalyticActivity{molps: x/y});
570 assert_eq!(div_check(&Amount{mol: x}, &CatalyticActivity{molps: y}), Time{s: x/y});
571 assert_eq!(div_check(&Amount{mol: x}, &Concentration{molpm3: y}), Volume{m3: x/y});
572 assert_eq!(div_check(&Amount{mol: x}, &Volume{m3: y}), Concentration{molpm3: x/y});
573 assert_eq!(mul_check(&Amount{mol: x}, &Frequency{Hz: y}), CatalyticActivity{molps: x*y});
574 assert_eq!(mul_check(&Current{A: x}, &Time{s: y}), Charge{C: x*y});
575 assert_eq!(div_check(&Current{A: x}, &Charge{C: y}), Frequency{Hz: x/y});
576 assert_eq!(div_check(&Current{A: x}, &Conductance{S: y}), Voltage{V: x/y});
577 assert_eq!(mul_check(&Current{A: x}, &Inductance{H: y}), MagneticFlux{Wb: x*y});
578 assert_eq!(mul_check(&Current{A: x}, &MagneticFlux{Wb: y}), Energy{J: x*y});
579 assert_eq!(mul_check(&Current{A: x}, &Resistance{Ohm: y}), Voltage{V: x*y});
580 assert_eq!(mul_check(&Current{A: x}, &Voltage{V: y}), Power{W: x*y});
581 assert_eq!(div_check(&Current{A: x}, &Voltage{V: y}), Conductance{S: x/y});
582 assert_eq!(div_check(&Current{A: x}, &Frequency{Hz: y}), Charge{C: x/y});
583 assert_eq!(mul_check(&Distance{m: x}, &Distance{m: y}), Area{m2: x*y});
584 assert_eq!(div_check(&Distance{m: x}, &Time{s: y}), Velocity{mps: x/y});
585 assert_eq!(mul_check(&Distance{m: x}, &Area{m2: y}), Volume{m3: x*y});
586 assert_eq!(mul_check(&Distance{m: x}, &Density{kgpm3: y}), AreaDensity{kgpm2: x*y});
587 assert_eq!(mul_check(&Distance{m: x}, &Force{N: y}), Energy{J: x*y});
588 assert_eq!(mul_check(&Distance{m: x}, &Frequency{Hz: y}), Velocity{mps: x*y});
589 assert_eq!(div_check(&Distance{m: x}, &Velocity{mps: y}), Time{s: x/y});
590 assert_eq!(mul_check(&Luminosity{cd: x}, &SolidAngle{sr: y}), LuminousFlux{lm: x*y});
591 assert_eq!(div_check(&Mass{kg: x}, &Area{m2: y}), AreaDensity{kgpm2: x/y});
592 assert_eq!(div_check(&Mass{kg: x}, &Volume{m3: y}), Density{kgpm3: x/y});
593 assert_eq!(mul_check(&Mass{kg: x}, &Acceleration{mps2: y}), Force{N: x*y});
594 assert_eq!(div_check(&Mass{kg: x}, &AreaDensity{kgpm2: y}), Area{m2: x/y});
595 assert_eq!(div_check(&Mass{kg: x}, &Density{kgpm3: y}), Volume{m3: x/y});
596 assert_eq!(mul_check(&Mass{kg: x}, &Velocity{mps: y}), Momentum{kgmps: x*y});
597 assert_eq!(mul_check(&Mass{kg: x}, &AbsorbedDose{Gy: y}), Energy{J: x*y});
598 assert_eq!(mul_check(&Mass{kg: x}, &DoseEquivalent{Sv: y}), Energy{J: x*y});
599 assert_eq!(mul_check(&Time{s: x}, &Current{A: y}), Charge{C: x*y});
600 assert_eq!(mul_check(&Time{s: x}, &CatalyticActivity{molps: y}), Amount{mol: x*y});
601 assert_eq!(div_check(&Time{s: x}, &Capacitance{F: y}), Resistance{Ohm: x/y});
602 assert_eq!(mul_check(&Time{s: x}, &Conductance{S: y}), Capacitance{F: x*y});
603 assert_eq!(div_check(&Time{s: x}, &Conductance{S: y}), Inductance{H: x/y});
604 assert_eq!(div_check(&Time{s: x}, &Inductance{H: y}), Conductance{S: x/y});
605 assert_eq!(mul_check(&Time{s: x}, &Resistance{Ohm: y}), Inductance{H: x*y});
606 assert_eq!(div_check(&Time{s: x}, &Resistance{Ohm: y}), Capacitance{F: x/y});
607 assert_eq!(mul_check(&Time{s: x}, &Voltage{V: y}), MagneticFlux{Wb: x*y});
608 assert_eq!(mul_check(&Time{s: x}, &Acceleration{mps2: y}), Velocity{mps: x*y});
609 assert_eq!(mul_check(&Time{s: x}, &AngularAcceleration{radps2: y}), AngularVelocity{radps: x*y});
610 assert_eq!(mul_check(&Time{s: x}, &AngularVelocity{radps: y}), Angle{rad: x*y});
611 assert_eq!(mul_check(&Time{s: x}, &Force{N: y}), Momentum{kgmps: x*y});
612 assert_eq!(mul_check(&Time{s: x}, &Power{W: y}), Energy{J: x*y});
613 assert_eq!(mul_check(&Time{s: x}, &Velocity{mps: y}), Distance{m: x*y});
614 assert_eq!(div_check(&CatalyticActivity{molps: x}, &Amount{mol: y}), Frequency{Hz: x/y});
615 assert_eq!(mul_check(&CatalyticActivity{molps: x}, &Time{s: y}), Amount{mol: x*y});
616 assert_eq!(div_check(&CatalyticActivity{molps: x}, &Frequency{Hz: y}), Amount{mol: x/y});
617 assert_eq!(mul_check(&Concentration{molpm3: x}, &Volume{m3: y}), Amount{mol: x*y});
618 assert_eq!(div_check(&Capacitance{F: x}, &Time{s: y}), Conductance{S: x/y});
619 assert_eq!(div_check(&Capacitance{F: x}, &Conductance{S: y}), Time{s: x/y});
620 assert_eq!(mul_check(&Capacitance{F: x}, &Resistance{Ohm: y}), Time{s: x*y});
621 assert_eq!(mul_check(&Capacitance{F: x}, &Voltage{V: y}), Charge{C: x*y});
622 assert_eq!(mul_check(&Capacitance{F: x}, &Frequency{Hz: y}), Conductance{S: x*y});
623 assert_eq!(div_check(&Charge{C: x}, &Current{A: y}), Time{s: x/y});
624 assert_eq!(div_check(&Charge{C: x}, &Time{s: y}), Current{A: x/y});
625 assert_eq!(div_check(&Charge{C: x}, &Capacitance{F: y}), Voltage{V: x/y});
626 assert_eq!(div_check(&Charge{C: x}, &Conductance{S: y}), MagneticFlux{Wb: x/y});
627 assert_eq!(div_check(&Charge{C: x}, &MagneticFlux{Wb: y}), Conductance{S: x/y});
628 assert_eq!(mul_check(&Charge{C: x}, &Resistance{Ohm: y}), MagneticFlux{Wb: x*y});
629 assert_eq!(mul_check(&Charge{C: x}, &Voltage{V: y}), Energy{J: x*y});
630 assert_eq!(div_check(&Charge{C: x}, &Voltage{V: y}), Capacitance{F: x/y});
631 assert_eq!(mul_check(&Charge{C: x}, &Frequency{Hz: y}), Current{A: x*y});
632 assert_eq!(mul_check(&Conductance{S: x}, &Time{s: y}), Capacitance{F: x*y});
633 assert_eq!(div_check(&Conductance{S: x}, &Capacitance{F: y}), Frequency{Hz: x/y});
634 assert_eq!(mul_check(&Conductance{S: x}, &Inductance{H: y}), Time{s: x*y});
635 assert_eq!(mul_check(&Conductance{S: x}, &MagneticFlux{Wb: y}), Charge{C: x*y});
636 assert_eq!(mul_check(&Conductance{S: x}, &Voltage{V: y}), Current{A: x*y});
637 assert_eq!(div_check(&Conductance{S: x}, &Frequency{Hz: y}), Capacitance{F: x/y});
638 assert_eq!(mul_check(&Illuminance{lux: x}, &Area{m2: y}), LuminousFlux{lm: x*y});
639 assert_eq!(mul_check(&Inductance{H: x}, &Current{A: y}), MagneticFlux{Wb: x*y});
640 assert_eq!(div_check(&Inductance{H: x}, &Time{s: y}), Resistance{Ohm: x/y});
641 assert_eq!(mul_check(&Inductance{H: x}, &Conductance{S: y}), Time{s: x*y});
642 assert_eq!(div_check(&Inductance{H: x}, &Resistance{Ohm: y}), Time{s: x/y});
643 assert_eq!(mul_check(&Inductance{H: x}, &Frequency{Hz: y}), Resistance{Ohm: x*y});
644 assert_eq!(div_check(&LuminousFlux{lm: x}, &Luminosity{cd: y}), SolidAngle{sr: x/y});
645 assert_eq!(div_check(&LuminousFlux{lm: x}, &Illuminance{lux: y}), Area{m2: x/y});
646 assert_eq!(div_check(&LuminousFlux{lm: x}, &Area{m2: y}), Illuminance{lux: x/y});
647 assert_eq!(div_check(&LuminousFlux{lm: x}, &SolidAngle{sr: y}), Luminosity{cd: x/y});
648 assert_eq!(mul_check(&MagneticFlux{Wb: x}, &Current{A: y}), Energy{J: x*y});
649 assert_eq!(div_check(&MagneticFlux{Wb: x}, &Current{A: y}), Inductance{H: x/y});
650 assert_eq!(div_check(&MagneticFlux{Wb: x}, &Time{s: y}), Voltage{V: x/y});
651 assert_eq!(div_check(&MagneticFlux{Wb: x}, &Charge{C: y}), Resistance{Ohm: x/y});
652 assert_eq!(mul_check(&MagneticFlux{Wb: x}, &Conductance{S: y}), Charge{C: x*y});
653 assert_eq!(div_check(&MagneticFlux{Wb: x}, &Inductance{H: y}), Current{A: x/y});
654 assert_eq!(div_check(&MagneticFlux{Wb: x}, &MagneticFluxDensity{T: y}), Area{m2: x/y});
655 assert_eq!(div_check(&MagneticFlux{Wb: x}, &Resistance{Ohm: y}), Charge{C: x/y});
656 assert_eq!(div_check(&MagneticFlux{Wb: x}, &Voltage{V: y}), Time{s: x/y});
657 assert_eq!(div_check(&MagneticFlux{Wb: x}, &Area{m2: y}), MagneticFluxDensity{T: x/y});
658 assert_eq!(mul_check(&MagneticFlux{Wb: x}, &Frequency{Hz: y}), Voltage{V: x*y});
659 assert_eq!(mul_check(&MagneticFluxDensity{T: x}, &Area{m2: y}), MagneticFlux{Wb: x*y});
660 assert_eq!(mul_check(&Resistance{Ohm: x}, &Current{A: y}), Voltage{V: x*y});
661 assert_eq!(mul_check(&Resistance{Ohm: x}, &Time{s: y}), Inductance{H: x*y});
662 assert_eq!(mul_check(&Resistance{Ohm: x}, &Capacitance{F: y}), Time{s: x*y});
663 assert_eq!(mul_check(&Resistance{Ohm: x}, &Charge{C: y}), MagneticFlux{Wb: x*y});
664 assert_eq!(div_check(&Resistance{Ohm: x}, &Inductance{H: y}), Frequency{Hz: x/y});
665 assert_eq!(div_check(&Resistance{Ohm: x}, &Frequency{Hz: y}), Inductance{H: x/y});
666 assert_eq!(mul_check(&Voltage{V: x}, &Current{A: y}), Power{W: x*y});
667 assert_eq!(div_check(&Voltage{V: x}, &Current{A: y}), Resistance{Ohm: x/y});
668 assert_eq!(mul_check(&Voltage{V: x}, &Time{s: y}), MagneticFlux{Wb: x*y});
669 assert_eq!(mul_check(&Voltage{V: x}, &Capacitance{F: y}), Charge{C: x*y});
670 assert_eq!(mul_check(&Voltage{V: x}, &Charge{C: y}), Energy{J: x*y});
671 assert_eq!(mul_check(&Voltage{V: x}, &Conductance{S: y}), Current{A: x*y});
672 assert_eq!(div_check(&Voltage{V: x}, &MagneticFlux{Wb: y}), Frequency{Hz: x/y});
673 assert_eq!(div_check(&Voltage{V: x}, &Resistance{Ohm: y}), Current{A: x/y});
674 assert_eq!(div_check(&Voltage{V: x}, &Frequency{Hz: y}), MagneticFlux{Wb: x/y});
675 assert_eq!(div_check(&Angle{rad: x}, &Time{s: y}), AngularVelocity{radps: x/y});
676 assert_eq!(div_check(&Angle{rad: x}, &AngularVelocity{radps: y}), Time{s: x/y});
677 assert_eq!(mul_check(&Angle{rad: x}, &Frequency{Hz: y}), AngularVelocity{radps: x*y});
678 assert_eq!(mul_check(&Area{m2: x}, &Distance{m: y}), Volume{m3: x*y});
679 assert_eq!(div_check(&Area{m2: x}, &Distance{m: y}), Distance{m: x/y});
680 assert_eq!(mul_check(&Area{m2: x}, &Illuminance{lux: y}), LuminousFlux{lm: x*y});
681 assert_eq!(mul_check(&Area{m2: x}, &MagneticFluxDensity{T: y}), MagneticFlux{Wb: x*y});
682 assert_eq!(mul_check(&Area{m2: x}, &AreaDensity{kgpm2: y}), Mass{kg: x*y});
683 assert_eq!(mul_check(&Area{m2: x}, &Pressure{Pa: y}), Force{N: x*y});
684 assert_eq!(mul_check(&SolidAngle{sr: x}, &Luminosity{cd: y}), LuminousFlux{lm: x*y});
685 assert_eq!(div_check(&Volume{m3: x}, &Distance{m: y}), Area{m2: x/y});
686 assert_eq!(mul_check(&Volume{m3: x}, &Concentration{molpm3: y}), Amount{mol: x*y});
687 assert_eq!(div_check(&Volume{m3: x}, &Area{m2: y}), Distance{m: x/y});
688 assert_eq!(mul_check(&Volume{m3: x}, &Density{kgpm3: y}), Mass{kg: x*y});
689 assert_eq!(mul_check(&Volume{m3: x}, &Pressure{Pa: y}), Energy{J: x*y});
690 assert_eq!(mul_check(&Acceleration{mps2: x}, &Mass{kg: y}), Force{N: x*y});
691 assert_eq!(mul_check(&Acceleration{mps2: x}, &Time{s: y}), Velocity{mps: x*y});
692 assert_eq!(mul_check(&Acceleration{mps2: x}, &AreaDensity{kgpm2: y}), Pressure{Pa: x*y});
693 assert_eq!(div_check(&Acceleration{mps2: x}, &Frequency{Hz: y}), Velocity{mps: x/y});
694 assert_eq!(mul_check(&Acceleration{mps2: x}, &Momentum{kgmps: y}), Power{W: x*y});
695 assert_eq!(div_check(&Acceleration{mps2: x}, &Velocity{mps: y}), Frequency{Hz: x/y});
696 assert_eq!(mul_check(&AngularAcceleration{radps2: x}, &Time{s: y}), AngularVelocity{radps: x*y});
697 assert_eq!(div_check(&AngularAcceleration{radps2: x}, &AngularVelocity{radps: y}), Frequency{Hz: x/y});
698 assert_eq!(div_check(&AngularAcceleration{radps2: x}, &Frequency{Hz: y}), AngularVelocity{radps: x/y});
699 assert_eq!(div_check(&AngularMomentum{kgm2radps: x}, &MomentOfInertia{kgm2: y}), AngularVelocity{radps: x/y});
700 assert_eq!(mul_check(&AngularVelocity{radps: x}, &Time{s: y}), Angle{rad: x*y});
701 assert_eq!(div_check(&AngularVelocity{radps: x}, &Time{s: y}), AngularAcceleration{radps2: x/y});
702 assert_eq!(div_check(&AngularVelocity{radps: x}, &Angle{rad: y}), Frequency{Hz: x/y});
703 assert_eq!(div_check(&AngularVelocity{radps: x}, &AngularAcceleration{radps2: y}), Time{s: x/y});
704 assert_eq!(mul_check(&AngularVelocity{radps: x}, &Frequency{Hz: y}), AngularAcceleration{radps2: x*y});
705 assert_eq!(div_check(&AngularVelocity{radps: x}, &Frequency{Hz: y}), Angle{rad: x/y});
706 assert_eq!(mul_check(&AngularVelocity{radps: x}, &MomentOfInertia{kgm2: y}), AngularMomentum{kgm2radps: x*y});
707 assert_eq!(div_check(&AreaDensity{kgpm2: x}, &Distance{m: y}), Density{kgpm3: x/y});
708 assert_eq!(mul_check(&AreaDensity{kgpm2: x}, &Area{m2: y}), Mass{kg: x*y});
709 assert_eq!(mul_check(&AreaDensity{kgpm2: x}, &Acceleration{mps2: y}), Pressure{Pa: x*y});
710 assert_eq!(div_check(&AreaDensity{kgpm2: x}, &Density{kgpm3: y}), Distance{m: x/y});
711 assert_eq!(mul_check(&Density{kgpm3: x}, &Distance{m: y}), AreaDensity{kgpm2: x*y});
712 assert_eq!(mul_check(&Density{kgpm3: x}, &Volume{m3: y}), Mass{kg: x*y});
713 assert_eq!(div_check(&Energy{J: x}, &Current{A: y}), MagneticFlux{Wb: x/y});
714 assert_eq!(div_check(&Energy{J: x}, &Distance{m: y}), Force{N: x/y});
715 assert_eq!(div_check(&Energy{J: x}, &Time{s: y}), Power{W: x/y});
716 assert_eq!(div_check(&Energy{J: x}, &Charge{C: y}), Voltage{V: x/y});
717 assert_eq!(div_check(&Energy{J: x}, &MagneticFlux{Wb: y}), Current{A: x/y});
718 assert_eq!(div_check(&Energy{J: x}, &Voltage{V: y}), Charge{C: x/y});
719 assert_eq!(div_check(&Energy{J: x}, &Volume{m3: y}), Pressure{Pa: x/y});
720 assert_eq!(div_check(&Energy{J: x}, &Force{N: y}), Distance{m: x/y});
721 assert_eq!(mul_check(&Energy{J: x}, &Frequency{Hz: y}), Power{W: x*y});
722 assert_eq!(div_check(&Energy{J: x}, &Momentum{kgmps: y}), Velocity{mps: x/y});
723 assert_eq!(div_check(&Energy{J: x}, &Power{W: y}), Time{s: x/y});
724 assert_eq!(div_check(&Energy{J: x}, &Pressure{Pa: y}), Volume{m3: x/y});
725 assert_eq!(div_check(&Energy{J: x}, &Velocity{mps: y}), Momentum{kgmps: x/y});
726 assert_eq!(div_check(&Energy{J: x}, &AbsorbedDose{Gy: y}), Mass{kg: x/y});
727 assert_eq!(div_check(&Energy{J: x}, &DoseEquivalent{Sv: y}), Mass{kg: x/y});
728 assert_eq!(mul_check(&Force{N: x}, &Distance{m: y}), Energy{J: x*y});
729 assert_eq!(div_check(&Force{N: x}, &Mass{kg: y}), Acceleration{mps2: x/y});
730 assert_eq!(mul_check(&Force{N: x}, &Time{s: y}), Momentum{kgmps: x*y});
731 assert_eq!(div_check(&Force{N: x}, &Area{m2: y}), Pressure{Pa: x/y});
732 assert_eq!(div_check(&Force{N: x}, &Acceleration{mps2: y}), Mass{kg: x/y});
733 assert_eq!(div_check(&Force{N: x}, &Frequency{Hz: y}), Momentum{kgmps: x/y});
734 assert_eq!(div_check(&Force{N: x}, &Momentum{kgmps: y}), Frequency{Hz: x/y});
735 assert_eq!(div_check(&Force{N: x}, &Pressure{Pa: y}), Area{m2: x/y});
736 assert_eq!(mul_check(&Force{N: x}, &Velocity{mps: y}), Power{W: x*y});
737 assert_eq!(mul_check(&Frequency{Hz: x}, &Amount{mol: y}), CatalyticActivity{molps: x*y});
738 assert_eq!(mul_check(&Frequency{Hz: x}, &Distance{m: y}), Velocity{mps: x*y});
739 assert_eq!(mul_check(&Frequency{Hz: x}, &Capacitance{F: y}), Conductance{S: x*y});
740 assert_eq!(mul_check(&Frequency{Hz: x}, &Charge{C: y}), Current{A: x*y});
741 assert_eq!(mul_check(&Frequency{Hz: x}, &Inductance{H: y}), Resistance{Ohm: x*y});
742 assert_eq!(mul_check(&Frequency{Hz: x}, &MagneticFlux{Wb: y}), Voltage{V: x*y});
743 assert_eq!(mul_check(&Frequency{Hz: x}, &Angle{rad: y}), AngularVelocity{radps: x*y});
744 assert_eq!(mul_check(&Frequency{Hz: x}, &AngularVelocity{radps: y}), AngularAcceleration{radps2: x*y});
745 assert_eq!(mul_check(&Frequency{Hz: x}, &Energy{J: y}), Power{W: x*y});
746 assert_eq!(mul_check(&Frequency{Hz: x}, &Torque{Nm: y}), Power{W: x*y});
747 assert_eq!(mul_check(&Frequency{Hz: x}, &Momentum{kgmps: y}), Force{N: x*y});
748 assert_eq!(mul_check(&Frequency{Hz: x}, &Velocity{mps: y}), Acceleration{mps2: x*y});
749 assert_eq!(div_check(&MomentOfInertia{kgm2: x}, &Mass{kg: y}), Area{m2: x/y});
750 assert_eq!(div_check(&MomentOfInertia{kgm2: x}, &Area{m2: y}), Mass{kg: x/y});
751 assert_eq!(mul_check(&MomentOfInertia{kgm2: x}, &AngularVelocity{radps: y}), AngularMomentum{kgm2radps: x*y});
752 assert_eq!(div_check(&Momentum{kgmps: x}, &Mass{kg: y}), Velocity{mps: x/y});
753 assert_eq!(div_check(&Momentum{kgmps: x}, &Time{s: y}), Force{N: x/y});
754 assert_eq!(mul_check(&Momentum{kgmps: x}, &Acceleration{mps2: y}), Power{W: x*y});
755 assert_eq!(div_check(&Momentum{kgmps: x}, &Force{N: y}), Time{s: x/y});
756 assert_eq!(mul_check(&Momentum{kgmps: x}, &Frequency{Hz: y}), Force{N: x*y});
757 assert_eq!(mul_check(&Momentum{kgmps: x}, &Velocity{mps: y}), Energy{J: x*y});
758 assert_eq!(div_check(&Momentum{kgmps: x}, &Velocity{mps: y}), Mass{kg: x/y});
759 assert_eq!(div_check(&Power{W: x}, &Current{A: y}), Voltage{V: x/y});
760 assert_eq!(mul_check(&Power{W: x}, &Time{s: y}), Energy{J: x*y});
761 assert_eq!(div_check(&Power{W: x}, &Voltage{V: y}), Current{A: x/y});
762 assert_eq!(div_check(&Power{W: x}, &Acceleration{mps2: y}), Momentum{kgmps: x/y});
763 assert_eq!(div_check(&Power{W: x}, &Energy{J: y}), Frequency{Hz: x/y});
764 assert_eq!(div_check(&Power{W: x}, &Torque{Nm: y}), Frequency{Hz: x/y});
765 assert_eq!(div_check(&Power{W: x}, &Force{N: y}), Velocity{mps: x/y});
766 assert_eq!(div_check(&Power{W: x}, &Frequency{Hz: y}), Energy{J: x/y});
767 assert_eq!(div_check(&Power{W: x}, &Momentum{kgmps: y}), Acceleration{mps2: x/y});
768 assert_eq!(div_check(&Power{W: x}, &Velocity{mps: y}), Force{N: x/y});
769 assert_eq!(mul_check(&Pressure{Pa: x}, &Area{m2: y}), Force{N: x*y});
770 assert_eq!(mul_check(&Pressure{Pa: x}, &Volume{m3: y}), Energy{J: x*y});
771 assert_eq!(div_check(&Pressure{Pa: x}, &Acceleration{mps2: y}), AreaDensity{kgpm2: x/y});
772 assert_eq!(div_check(&Pressure{Pa: x}, &AreaDensity{kgpm2: y}), Acceleration{mps2: x/y});
773 assert_eq!(div_check(&Torque{Nm: x}, &Current{A: y}), MagneticFlux{Wb: x/y});
774 assert_eq!(div_check(&Torque{Nm: x}, &Distance{m: y}), Force{N: x/y});
775 assert_eq!(div_check(&Torque{Nm: x}, &Time{s: y}), Power{W: x/y});
776 assert_eq!(div_check(&Torque{Nm: x}, &Charge{C: y}), Voltage{V: x/y});
777 assert_eq!(div_check(&Torque{Nm: x}, &MagneticFlux{Wb: y}), Current{A: x/y});
778 assert_eq!(div_check(&Torque{Nm: x}, &Voltage{V: y}), Charge{C: x/y});
779 assert_eq!(div_check(&Torque{Nm: x}, &Volume{m3: y}), Pressure{Pa: x/y});
780 assert_eq!(div_check(&Torque{Nm: x}, &Force{N: y}), Distance{m: x/y});
781 assert_eq!(mul_check(&Torque{Nm: x}, &Frequency{Hz: y}), Power{W: x*y});
782 assert_eq!(div_check(&Torque{Nm: x}, &Momentum{kgmps: y}), Velocity{mps: x/y});
783 assert_eq!(div_check(&Torque{Nm: x}, &Power{W: y}), Time{s: x/y});
784 assert_eq!(div_check(&Torque{Nm: x}, &Pressure{Pa: y}), Volume{m3: x/y});
785 assert_eq!(div_check(&Torque{Nm: x}, &Velocity{mps: y}), Momentum{kgmps: x/y});
786 assert_eq!(div_check(&Velocity{mps: x}, &Distance{m: y}), Frequency{Hz: x/y});
787 assert_eq!(mul_check(&Velocity{mps: x}, &Mass{kg: y}), Momentum{kgmps: x*y});
788 assert_eq!(mul_check(&Velocity{mps: x}, &Time{s: y}), Distance{m: x*y});
789 assert_eq!(div_check(&Velocity{mps: x}, &Time{s: y}), Acceleration{mps2: x/y});
790 assert_eq!(div_check(&Velocity{mps: x}, &Acceleration{mps2: y}), Time{s: x/y});
791 assert_eq!(mul_check(&Velocity{mps: x}, &Force{N: y}), Power{W: x*y});
792 assert_eq!(mul_check(&Velocity{mps: x}, &Frequency{Hz: y}), Acceleration{mps2: x*y});
793 assert_eq!(div_check(&Velocity{mps: x}, &Frequency{Hz: y}), Distance{m: x/y});
794 assert_eq!(mul_check(&Velocity{mps: x}, &Momentum{kgmps: y}), Energy{J: x*y});
795 assert_eq!(mul_check(&AbsorbedDose{Gy: x}, &Mass{kg: y}), Energy{J: x*y});
796 assert_eq!(mul_check(&DoseEquivalent{Sv: x}, &Mass{kg: y}), Energy{J: x*y});
797 assert_eq!(div_check(&(x as f64), &Time{s: y as f64}), Frequency{Hz: x as f64/y as f64});
798 assert_eq!(div_check(&(x as f32), &Time{s: y as f32}), Frequency{Hz: x as f32/y as f32});
799 assert_eq!(div_check(&(x as i64), &Time{s: y as i64}), Frequency{Hz: x as i64/y as i64});
800 assert_eq!(div_check(&(x as i32), &Time{s: y as i32}), Frequency{Hz: x as i32/y as i32});
801 assert_eq!(div_check(&(x as f64), &Time{s: y as f64}), Frequency{Hz: x as f64/y as f64});
802 assert_eq!(div_check(&(x as f32), &Time{s: y as f32}), Frequency{Hz: x as f32/y as f32});
803 assert_eq!(div_check(&(x as i64), &Time{s: y as i64}), Frequency{Hz: x as i64/y as i64});
804 assert_eq!(div_check(&(x as i32), &Time{s: y as i32}), Frequency{Hz: x as i32/y as i32});
805 assert_eq!(div_check(&(x as f64), &Conductance{S: y as f64}), Resistance{Ohm: x as f64/y as f64});
806 assert_eq!(div_check(&(x as f32), &Conductance{S: y as f32}), Resistance{Ohm: x as f32/y as f32});
807 assert_eq!(div_check(&(x as i64), &Conductance{S: y as i64}), Resistance{Ohm: x as i64/y as i64});
808 assert_eq!(div_check(&(x as i32), &Conductance{S: y as i32}), Resistance{Ohm: x as i32/y as i32});
809 assert_eq!(div_check(&(x as f64), &Resistance{Ohm: y as f64}), Conductance{S: x as f64/y as f64});
810 assert_eq!(div_check(&(x as f32), &Resistance{Ohm: y as f32}), Conductance{S: x as f32/y as f32});
811 assert_eq!(div_check(&(x as i64), &Resistance{Ohm: y as i64}), Conductance{S: x as i64/y as i64});
812 assert_eq!(div_check(&(x as i32), &Resistance{Ohm: y as i32}), Conductance{S: x as i32/y as i32});
813 assert_eq!(div_check(&(x as f64), &Conductance{S: y as f64}), Resistance{Ohm: x as f64/y as f64});
814 assert_eq!(div_check(&(x as f32), &Conductance{S: y as f32}), Resistance{Ohm: x as f32/y as f32});
815 assert_eq!(div_check(&(x as i64), &Conductance{S: y as i64}), Resistance{Ohm: x as i64/y as i64});
816 assert_eq!(div_check(&(x as i32), &Conductance{S: y as i32}), Resistance{Ohm: x as i32/y as i32});
817 assert_eq!(div_check(&(x as f64), &Resistance{Ohm: y as f64}), Conductance{S: x as f64/y as f64});
818 assert_eq!(div_check(&(x as f32), &Resistance{Ohm: y as f32}), Conductance{S: x as f32/y as f32});
819 assert_eq!(div_check(&(x as i64), &Resistance{Ohm: y as i64}), Conductance{S: x as i64/y as i64});
820 assert_eq!(div_check(&(x as i32), &Resistance{Ohm: y as i32}), Conductance{S: x as i32/y as i32});
821 assert_eq!(div_check(&(x as f64), &Frequency{Hz: y as f64}), Time{s: x as f64/y as f64});
822 assert_eq!(div_check(&(x as f32), &Frequency{Hz: y as f32}), Time{s: x as f32/y as f32});
823 assert_eq!(div_check(&(x as i64), &Frequency{Hz: y as i64}), Time{s: x as i64/y as i64});
824 assert_eq!(div_check(&(x as i32), &Frequency{Hz: y as i32}), Time{s: x as i32/y as i32});
825 assert_eq!(div_check(&(x as f64), &Frequency{Hz: y as f64}), Time{s: x as f64/y as f64});
826 assert_eq!(div_check(&(x as f32), &Frequency{Hz: y as f32}), Time{s: x as f32/y as f32});
827 assert_eq!(div_check(&(x as i64), &Frequency{Hz: y as i64}), Time{s: x as i64/y as i64});
828 assert_eq!(div_check(&(x as i32), &Frequency{Hz: y as i32}), Time{s: x as i32/y as i32});
829 assert_eq!(div_check(&(x as f64), &Radioactivity{Bq: y as f64}), Time{s: x as f64/y as f64});
830 assert_eq!(div_check(&(x as f32), &Radioactivity{Bq: y as f32}), Time{s: x as f32/y as f32});
831 assert_eq!(div_check(&(x as i64), &Radioactivity{Bq: y as i64}), Time{s: x as i64/y as i64});
832 assert_eq!(div_check(&(x as i32), &Radioactivity{Bq: y as i32}), Time{s: x as i32/y as i32});
833 assert_eq!(div_check(&(x as f64), &Radioactivity{Bq: y as f64}), Time{s: x as f64/y as f64});
834 assert_eq!(div_check(&(x as f32), &Radioactivity{Bq: y as f32}), Time{s: x as f32/y as f32});
835 assert_eq!(div_check(&(x as i64), &Radioactivity{Bq: y as i64}), Time{s: x as i64/y as i64});
836 assert_eq!(div_check(&(x as i32), &Radioactivity{Bq: y as i32}), Time{s: x as i32/y as i32});
837 assert_eq!(div_check(&Amount{mol: x}, &Mass{kg: y}), Molality{molpkg: x/y});
838 assert_eq!(div_check(&Amount{mol: x}, &Molality{molpkg: y}), Mass{kg: x/y});
839 assert_eq!(mul_check(&Amount{mol: x}, &MolarMass{kgpmol: y}), Mass{kg: x*y});
840 assert_eq!(div_check(&Mass{kg: x}, &Amount{mol: y}), MolarMass{kgpmol: x/y});
841 assert_eq!(mul_check(&Mass{kg: x}, &Molality{molpkg: y}), Amount{mol: x*y});
842 assert_eq!(div_check(&Mass{kg: x}, &MolarMass{kgpmol: y}), Amount{mol: x/y});
843 assert_eq!(div_check(&Concentration{molpm3: x}, &Molality{molpkg: y}), Density{kgpm3: x/y});
844 assert_eq!(mul_check(&Concentration{molpm3: x}, &MolarMass{kgpmol: y}), Density{kgpm3: x*y});
845 assert_eq!(div_check(&Concentration{molpm3: x}, &Density{kgpm3: y}), Molality{molpkg: x/y});
846 assert_eq!(mul_check(&Molality{molpkg: x}, &Mass{kg: y}), Amount{mol: x*y});
847 assert_eq!(mul_check(&Molality{molpkg: x}, &Density{kgpm3: y}), Concentration{molpm3: x*y});
848 assert_eq!(mul_check(&MolarMass{kgpmol: x}, &Amount{mol: y}), Mass{kg: x*y});
849 assert_eq!(mul_check(&MolarMass{kgpmol: x}, &Concentration{molpm3: y}), Density{kgpm3: x*y});
850 assert_eq!(div_check(&Density{kgpm3: x}, &Concentration{molpm3: y}), MolarMass{kgpmol: x/y});
851 assert_eq!(mul_check(&Density{kgpm3: x}, &Molality{molpkg: y}), Concentration{molpm3: x*y});
852 assert_eq!(div_check(&Density{kgpm3: x}, &MolarMass{kgpmol: y}), Concentration{molpm3: x/y});
853 assert_eq!(div_check(&(x as f64), &Molality{molpkg: y as f64}), MolarMass{kgpmol: x as f64/y as f64});
854 assert_eq!(div_check(&(x as f32), &Molality{molpkg: y as f32}), MolarMass{kgpmol: x as f32/y as f32});
855 assert_eq!(div_check(&(x as i64), &Molality{molpkg: y as i64}), MolarMass{kgpmol: x as i64/y as i64});
856 assert_eq!(div_check(&(x as i32), &Molality{molpkg: y as i32}), MolarMass{kgpmol: x as i32/y as i32});
857 assert_eq!(div_check(&(x as f64), &MolarMass{kgpmol: y as f64}), Molality{molpkg: x as f64/y as f64});
858 assert_eq!(div_check(&(x as f32), &MolarMass{kgpmol: y as f32}), Molality{molpkg: x as f32/y as f32});
859 assert_eq!(div_check(&(x as i64), &MolarMass{kgpmol: y as i64}), Molality{molpkg: x as i64/y as i64});
860 assert_eq!(div_check(&(x as i32), &MolarMass{kgpmol: y as i32}), Molality{molpkg: x as i32/y as i32});
861 assert_eq!(mul_check(&Amount{mol: x}, &InverseMass{per_kg: y}), Molality{molpkg: x*y});
862 assert_eq!(mul_check(&Amount{mol: x}, &InverseCatalyticActivity{s_per_mol: y}), Time{s: x*y});
863 assert_eq!(mul_check(&Amount{mol: x}, &MolarVolume{m3_per_mol: y}), Volume{m3: x*y});
864 assert_eq!(mul_check(&Amount{mol: x}, &InverseVolume{per_m3: y}), Concentration{molpm3: x*y});
865 assert_eq!(mul_check(&Current{A: x}, &InverseCharge{per_C: y}), Frequency{Hz: x*y});
866 assert_eq!(div_check(&Current{A: x}, &InverseInductance{per_H: y}), MagneticFlux{Wb: x/y});
867 assert_eq!(mul_check(&Current{A: x}, &InverseMagneticFlux{per_Wb: y}), InverseInductance{per_H: x*y});
868 assert_eq!(div_check(&Current{A: x}, &InverseMagneticFlux{per_Wb: y}), Energy{J: x/y});
869 assert_eq!(mul_check(&Current{A: x}, &InverseVoltage{per_V: y}), Conductance{S: x*y});
870 assert_eq!(div_check(&Current{A: x}, &InverseVoltage{per_V: y}), Power{W: x/y});
871 assert_eq!(div_check(&Current{A: x}, &MagneticFlux{Wb: y}), InverseInductance{per_H: x/y});
872 assert_eq!(div_check(&Current{A: x}, &Energy{J: y}), InverseMagneticFlux{per_Wb: x/y});
873 assert_eq!(div_check(&Current{A: x}, &Torque{Nm: y}), InverseMagneticFlux{per_Wb: x/y});
874 assert_eq!(mul_check(&Current{A: x}, &InverseEnergy{per_J: y}), InverseMagneticFlux{per_Wb: x*y});
875 assert_eq!(mul_check(&Current{A: x}, &InverseTorque{per_Nm: y}), InverseMagneticFlux{per_Wb: x*y});
876 assert_eq!(mul_check(&Current{A: x}, &InversePower{per_W: y}), InverseVoltage{per_V: x*y});
877 assert_eq!(div_check(&Current{A: x}, &Power{W: y}), InverseVoltage{per_V: x/y});
878 assert_eq!(div_check(&Distance{m: x}, &InverseDistance{per_m: y}), Area{m2: x/y});
879 assert_eq!(div_check(&Distance{m: x}, &Area{m2: y}), InverseDistance{per_m: x/y});
880 assert_eq!(mul_check(&Distance{m: x}, &InverseArea{per_m2: y}), InverseDistance{per_m: x*y});
881 assert_eq!(div_check(&Distance{m: x}, &InverseArea{per_m2: y}), Volume{m3: x/y});
882 assert_eq!(mul_check(&Distance{m: x}, &InverseVolume{per_m3: y}), InverseArea{per_m2: x*y});
883 assert_eq!(div_check(&Distance{m: x}, &Volume{m3: y}), InverseArea{per_m2: x/y});
884 assert_eq!(div_check(&Distance{m: x}, &AreaDensity{kgpm2: y}), VolumePerMass{m3_per_kg: x/y});
885 assert_eq!(mul_check(&Distance{m: x}, &AreaPerMass{m2_per_kg: y}), VolumePerMass{m3_per_kg: x*y});
886 assert_eq!(div_check(&Distance{m: x}, &Energy{J: y}), InverseForce{per_N: x/y});
887 assert_eq!(div_check(&Distance{m: x}, &Torque{Nm: y}), InverseForce{per_N: x/y});
888 assert_eq!(mul_check(&Distance{m: x}, &InverseEnergy{per_J: y}), InverseForce{per_N: x*y});
889 assert_eq!(mul_check(&Distance{m: x}, &InverseTorque{per_Nm: y}), InverseForce{per_N: x*y});
890 assert_eq!(div_check(&Distance{m: x}, &InverseForce{per_N: y}), Energy{J: x/y});
891 assert_eq!(mul_check(&Distance{m: x}, &TimePerDistance{spm: y}), Time{s: x*y});
892 assert_eq!(div_check(&Distance{m: x}, &VolumePerMass{m3_per_kg: y}), AreaDensity{kgpm2: x/y});
893 assert_eq!(mul_check(&Distance{m: x}, &InverseAbsorbedDose{per_Gy: y}), InverseAcceleration{s2pm: x*y});
894 assert_eq!(mul_check(&Distance{m: x}, &InverseDoseEquivalent{per_Sv: y}), InverseAcceleration{s2pm: x*y});
895 assert_eq!(div_check(&InverseAmount{per_mol: x}, &InverseMass{per_kg: y}), MolarMass{kgpmol: x/y});
896 assert_eq!(mul_check(&InverseAmount{per_mol: x}, &Mass{kg: y}), MolarMass{kgpmol: x*y});
897 assert_eq!(mul_check(&InverseAmount{per_mol: x}, &Time{s: y}), InverseCatalyticActivity{s_per_mol: x*y});
898 assert_eq!(mul_check(&InverseAmount{per_mol: x}, &CatalyticActivity{molps: y}), Frequency{Hz: x*y});
899 assert_eq!(mul_check(&InverseAmount{per_mol: x}, &Concentration{molpm3: y}), InverseVolume{per_m3: x*y});
900 assert_eq!(div_check(&InverseAmount{per_mol: x}, &InverseCatalyticActivity{s_per_mol: y}), Frequency{Hz: x/y});
901 assert_eq!(mul_check(&InverseAmount{per_mol: x}, &Molality{molpkg: y}), InverseMass{per_kg: x*y});
902 assert_eq!(div_check(&InverseAmount{per_mol: x}, &MolarMass{kgpmol: y}), InverseMass{per_kg: x/y});
903 assert_eq!(div_check(&InverseAmount{per_mol: x}, &MolarVolume{m3_per_mol: y}), InverseVolume{per_m3: x/y});
904 assert_eq!(div_check(&InverseAmount{per_mol: x}, &InverseVolume{per_m3: y}), MolarVolume{m3_per_mol: x/y});
905 assert_eq!(mul_check(&InverseAmount{per_mol: x}, &Volume{m3: y}), MolarVolume{m3_per_mol: x*y});
906 assert_eq!(div_check(&InverseAmount{per_mol: x}, &Frequency{Hz: y}), InverseCatalyticActivity{s_per_mol: x/y});
907 assert_eq!(div_check(&InverseCurrent{per_A: x}, &Time{s: y}), InverseCharge{per_C: x/y});
908 assert_eq!(mul_check(&InverseCurrent{per_A: x}, &Charge{C: y}), Time{s: x*y});
909 assert_eq!(mul_check(&InverseCurrent{per_A: x}, &Conductance{S: y}), InverseVoltage{per_V: x*y});
910 assert_eq!(div_check(&InverseCurrent{per_A: x}, &Inductance{H: y}), InverseMagneticFlux{per_Wb: x/y});
911 assert_eq!(div_check(&InverseCurrent{per_A: x}, &InverseCharge{per_C: y}), Time{s: x/y});
912 assert_eq!(mul_check(&InverseCurrent{per_A: x}, &InverseInductance{per_H: y}), InverseMagneticFlux{per_Wb: x*y});
913 assert_eq!(mul_check(&InverseCurrent{per_A: x}, &InverseMagneticFlux{per_Wb: y}), InverseEnergy{per_J: x*y});
914 assert_eq!(div_check(&InverseCurrent{per_A: x}, &InverseMagneticFlux{per_Wb: y}), Inductance{H: x/y});
915 assert_eq!(mul_check(&InverseCurrent{per_A: x}, &InverseVoltage{per_V: y}), InversePower{per_W: x*y});
916 assert_eq!(div_check(&InverseCurrent{per_A: x}, &InverseVoltage{per_V: y}), Resistance{Ohm: x/y});
917 assert_eq!(mul_check(&InverseCurrent{per_A: x}, &MagneticFlux{Wb: y}), Inductance{H: x*y});
918 assert_eq!(div_check(&InverseCurrent{per_A: x}, &MagneticFlux{Wb: y}), InverseEnergy{per_J: x/y});
919 assert_eq!(div_check(&InverseCurrent{per_A: x}, &Resistance{Ohm: y}), InverseVoltage{per_V: x/y});
920 assert_eq!(mul_check(&InverseCurrent{per_A: x}, &Voltage{V: y}), Resistance{Ohm: x*y});
921 assert_eq!(div_check(&InverseCurrent{per_A: x}, &Voltage{V: y}), InversePower{per_W: x/y});
922 assert_eq!(mul_check(&InverseCurrent{per_A: x}, &Energy{J: y}), MagneticFlux{Wb: x*y});
923 assert_eq!(mul_check(&InverseCurrent{per_A: x}, &Torque{Nm: y}), MagneticFlux{Wb: x*y});
924 assert_eq!(mul_check(&InverseCurrent{per_A: x}, &Frequency{Hz: y}), InverseCharge{per_C: x*y});
925 assert_eq!(div_check(&InverseCurrent{per_A: x}, &InverseEnergy{per_J: y}), MagneticFlux{Wb: x/y});
926 assert_eq!(div_check(&InverseCurrent{per_A: x}, &InverseTorque{per_Nm: y}), MagneticFlux{Wb: x/y});
927 assert_eq!(div_check(&InverseCurrent{per_A: x}, &InversePower{per_W: y}), Voltage{V: x/y});
928 assert_eq!(mul_check(&InverseCurrent{per_A: x}, &Power{W: y}), Voltage{V: x*y});
929 assert_eq!(div_check(&InverseDistance{per_m: x}, &Distance{m: y}), InverseArea{per_m2: x/y});
930 assert_eq!(mul_check(&InverseDistance{per_m: x}, &InverseDistance{per_m: y}), InverseArea{per_m2: x*y});
931 assert_eq!(mul_check(&InverseDistance{per_m: x}, &Time{s: y}), TimePerDistance{spm: x*y});
932 assert_eq!(mul_check(&InverseDistance{per_m: x}, &Area{m2: y}), Distance{m: x*y});
933 assert_eq!(div_check(&InverseDistance{per_m: x}, &Area{m2: y}), InverseVolume{per_m3: x/y});
934 assert_eq!(mul_check(&InverseDistance{per_m: x}, &InverseArea{per_m2: y}), InverseVolume{per_m3: x*y});
935 assert_eq!(div_check(&InverseDistance{per_m: x}, &InverseArea{per_m2: y}), Distance{m: x/y});
936 assert_eq!(div_check(&InverseDistance{per_m: x}, &InverseVolume{per_m3: y}), Area{m2: x/y});
937 assert_eq!(mul_check(&InverseDistance{per_m: x}, &Volume{m3: y}), Area{m2: x*y});
938 assert_eq!(mul_check(&InverseDistance{per_m: x}, &AreaDensity{kgpm2: y}), Density{kgpm3: x*y});
939 assert_eq!(div_check(&InverseDistance{per_m: x}, &AreaPerMass{m2_per_kg: y}), Density{kgpm3: x/y});
940 assert_eq!(div_check(&InverseDistance{per_m: x}, &Density{kgpm3: y}), AreaPerMass{m2_per_kg: x/y});
941 assert_eq!(mul_check(&InverseDistance{per_m: x}, &Energy{J: y}), Force{N: x*y});
942 assert_eq!(mul_check(&InverseDistance{per_m: x}, &Torque{Nm: y}), Force{N: x*y});
943 assert_eq!(div_check(&InverseDistance{per_m: x}, &Force{N: y}), InverseEnergy{per_J: x/y});
944 assert_eq!(div_check(&InverseDistance{per_m: x}, &Frequency{Hz: y}), TimePerDistance{spm: x/y});
945 assert_eq!(div_check(&InverseDistance{per_m: x}, &InverseEnergy{per_J: y}), Force{N: x/y});
946 assert_eq!(div_check(&InverseDistance{per_m: x}, &InverseTorque{per_Nm: y}), Force{N: x/y});
947 assert_eq!(mul_check(&InverseDistance{per_m: x}, &InverseForce{per_N: y}), InverseEnergy{per_J: x*y});
948 assert_eq!(div_check(&InverseDistance{per_m: x}, &TimePerDistance{spm: y}), Frequency{Hz: x/y});
949 assert_eq!(mul_check(&InverseDistance{per_m: x}, &Velocity{mps: y}), Frequency{Hz: x*y});
950 assert_eq!(mul_check(&InverseDistance{per_m: x}, &VolumePerMass{m3_per_kg: y}), AreaPerMass{m2_per_kg: x*y});
951 assert_eq!(div_check(&InverseDistance{per_m: x}, &InverseAbsorbedDose{per_Gy: y}), Acceleration{mps2: x/y});
952 assert_eq!(div_check(&InverseDistance{per_m: x}, &InverseDoseEquivalent{per_Sv: y}), Acceleration{mps2: x/y});
953 assert_eq!(div_check(&InverseLuminosity{per_cd: x}, &InverseLuminousFlux{per_lm: y}), SolidAngle{sr: x/y});
954 assert_eq!(mul_check(&InverseLuminosity{per_cd: x}, &LuminousFlux{lm: y}), SolidAngle{sr: x*y});
955 assert_eq!(mul_check(&InverseLuminosity{per_cd: x}, &InverseSolidAngle{per_sr: y}), InverseLuminousFlux{per_lm: x*y});
956 assert_eq!(div_check(&InverseLuminosity{per_cd: x}, &SolidAngle{sr: y}), InverseLuminousFlux{per_lm: x/y});
957 assert_eq!(mul_check(&InverseMass{per_kg: x}, &Amount{mol: y}), Molality{molpkg: x*y});
958 assert_eq!(div_check(&InverseMass{per_kg: x}, &InverseAmount{per_mol: y}), Molality{molpkg: x/y});
959 assert_eq!(div_check(&InverseMass{per_kg: x}, &Molality{molpkg: y}), InverseAmount{per_mol: x/y});
960 assert_eq!(mul_check(&InverseMass{per_kg: x}, &MolarMass{kgpmol: y}), InverseAmount{per_mol: x*y});
961 assert_eq!(mul_check(&InverseMass{per_kg: x}, &Area{m2: y}), AreaPerMass{m2_per_kg: x*y});
962 assert_eq!(div_check(&InverseMass{per_kg: x}, &InverseArea{per_m2: y}), AreaPerMass{m2_per_kg: x/y});
963 assert_eq!(div_check(&InverseMass{per_kg: x}, &InverseVolume{per_m3: y}), VolumePerMass{m3_per_kg: x/y});
964 assert_eq!(mul_check(&InverseMass{per_kg: x}, &Volume{m3: y}), VolumePerMass{m3_per_kg: x*y});
965 assert_eq!(div_check(&InverseMass{per_kg: x}, &Acceleration{mps2: y}), InverseForce{per_N: x/y});
966 assert_eq!(mul_check(&InverseMass{per_kg: x}, &AreaDensity{kgpm2: y}), InverseArea{per_m2: x*y});
967 assert_eq!(div_check(&InverseMass{per_kg: x}, &AreaPerMass{m2_per_kg: y}), InverseArea{per_m2: x/y});
968 assert_eq!(mul_check(&InverseMass{per_kg: x}, &Density{kgpm3: y}), InverseVolume{per_m3: x*y});
969 assert_eq!(mul_check(&InverseMass{per_kg: x}, &Force{N: y}), Acceleration{mps2: x*y});
970 assert_eq!(mul_check(&InverseMass{per_kg: x}, &InverseAcceleration{s2pm: y}), InverseForce{per_N: x*y});
971 assert_eq!(div_check(&InverseMass{per_kg: x}, &InverseForce{per_N: y}), Acceleration{mps2: x/y});
972 assert_eq!(div_check(&InverseMass{per_kg: x}, &InverseMomentOfInertia{per_kgm2: y}), Area{m2: x/y});
973 assert_eq!(div_check(&InverseMass{per_kg: x}, &InverseMomentum{s_per_kgm: y}), Velocity{mps: x/y});
974 assert_eq!(mul_check(&InverseMass{per_kg: x}, &MomentOfInertia{kgm2: y}), Area{m2: x*y});
975 assert_eq!(mul_check(&InverseMass{per_kg: x}, &Momentum{kgmps: y}), Velocity{mps: x*y});
976 assert_eq!(mul_check(&InverseMass{per_kg: x}, &TimePerDistance{spm: y}), InverseMomentum{s_per_kgm: x*y});
977 assert_eq!(div_check(&InverseMass{per_kg: x}, &Velocity{mps: y}), InverseMomentum{s_per_kgm: x/y});
978 assert_eq!(div_check(&InverseMass{per_kg: x}, &VolumePerMass{m3_per_kg: y}), InverseVolume{per_m3: x/y});
979 assert_eq!(mul_check(&InverseMass{per_kg: x}, &InverseAbsorbedDose{per_Gy: y}), InverseEnergy{per_J: x*y});
980 assert_eq!(mul_check(&InverseMass{per_kg: x}, &InverseDoseEquivalent{per_Sv: y}), InverseEnergy{per_J: x*y});
981 assert_eq!(div_check(&InverseTemperature{per_K: x}, &InverseAbsorbedDose{per_Gy: y}), SpecificHeatCapacity{J_per_kgK: x/y});
982 assert_eq!(div_check(&InverseTemperature{per_K: x}, &InverseDoseEquivalent{per_Sv: y}), SpecificHeatCapacity{J_per_kgK: x/y});
983 assert_eq!(mul_check(&Luminosity{cd: x}, &InverseLuminousFlux{per_lm: y}), InverseSolidAngle{per_sr: x*y});
984 assert_eq!(div_check(&Luminosity{cd: x}, &LuminousFlux{lm: y}), InverseSolidAngle{per_sr: x/y});
985 assert_eq!(div_check(&Luminosity{cd: x}, &InverseSolidAngle{per_sr: y}), LuminousFlux{lm: x/y});
986 assert_eq!(mul_check(&Mass{kg: x}, &InverseAmount{per_mol: y}), MolarMass{kgpmol: x*y});
987 assert_eq!(mul_check(&Mass{kg: x}, &InverseArea{per_m2: y}), AreaDensity{kgpm2: x*y});
988 assert_eq!(mul_check(&Mass{kg: x}, &InverseVolume{per_m3: y}), Density{kgpm3: x*y});
989 assert_eq!(mul_check(&Mass{kg: x}, &AreaPerMass{m2_per_kg: y}), Area{m2: x*y});
990 assert_eq!(div_check(&Mass{kg: x}, &Force{N: y}), InverseAcceleration{s2pm: x/y});
991 assert_eq!(div_check(&Mass{kg: x}, &InverseAcceleration{s2pm: y}), Force{N: x/y});
992 assert_eq!(mul_check(&Mass{kg: x}, &InverseForce{per_N: y}), InverseAcceleration{s2pm: x*y});
993 assert_eq!(mul_check(&Mass{kg: x}, &InverseMomentOfInertia{per_kgm2: y}), InverseArea{per_m2: x*y});
994 assert_eq!(mul_check(&Mass{kg: x}, &InverseMomentum{s_per_kgm: y}), TimePerDistance{spm: x*y});
995 assert_eq!(div_check(&Mass{kg: x}, &MomentOfInertia{kgm2: y}), InverseArea{per_m2: x/y});
996 assert_eq!(div_check(&Mass{kg: x}, &Momentum{kgmps: y}), TimePerDistance{spm: x/y});
997 assert_eq!(div_check(&Mass{kg: x}, &TimePerDistance{spm: y}), Momentum{kgmps: x/y});
998 assert_eq!(mul_check(&Mass{kg: x}, &VolumePerMass{m3_per_kg: y}), Volume{m3: x*y});
999 assert_eq!(div_check(&Mass{kg: x}, &InverseAbsorbedDose{per_Gy: y}), Energy{J: x/y});
1000 assert_eq!(div_check(&Mass{kg: x}, &InverseDoseEquivalent{per_Sv: y}), Energy{J: x/y});
1001 assert_eq!(mul_check(&Temperature{K: x}, &InverseAbsorbedDose{per_Gy: y}), InverseSpecificHeatCapacity{kgK_per_J: x*y});
1002 assert_eq!(mul_check(&Temperature{K: x}, &InverseDoseEquivalent{per_Sv: y}), InverseSpecificHeatCapacity{kgK_per_J: x*y});
1003 assert_eq!(div_check(&Time{s: x}, &Amount{mol: y}), InverseCatalyticActivity{s_per_mol: x/y});
1004 assert_eq!(div_check(&Time{s: x}, &Distance{m: y}), TimePerDistance{spm: x/y});
1005 assert_eq!(mul_check(&Time{s: x}, &InverseAmount{per_mol: y}), InverseCatalyticActivity{s_per_mol: x*y});
1006 assert_eq!(div_check(&Time{s: x}, &InverseCurrent{per_A: y}), Charge{C: x/y});
1007 assert_eq!(mul_check(&Time{s: x}, &InverseDistance{per_m: y}), TimePerDistance{spm: x*y});
1008 assert_eq!(div_check(&Time{s: x}, &InverseCatalyticActivity{s_per_mol: y}), Amount{mol: x/y});
1009 assert_eq!(div_check(&Time{s: x}, &Charge{C: y}), InverseCurrent{per_A: x/y});
1010 assert_eq!(mul_check(&Time{s: x}, &Elastance{per_F: y}), Resistance{Ohm: x*y});
1011 assert_eq!(mul_check(&Time{s: x}, &InverseCharge{per_C: y}), InverseCurrent{per_A: x*y});
1012 assert_eq!(mul_check(&Time{s: x}, &InverseInductance{per_H: y}), Conductance{S: x*y});
1013 assert_eq!(mul_check(&Time{s: x}, &InverseMagneticFlux{per_Wb: y}), InverseVoltage{per_V: x*y});
1014 assert_eq!(div_check(&Time{s: x}, &InverseVoltage{per_V: y}), MagneticFlux{Wb: x/y});
1015 assert_eq!(div_check(&Time{s: x}, &MagneticFlux{Wb: y}), InverseVoltage{per_V: x/y});
1016 assert_eq!(div_check(&Time{s: x}, &Angle{rad: y}), InverseAngularVelocity{s_per_rad: x/y});
1017 assert_eq!(mul_check(&Time{s: x}, &InverseAngle{per_rad: y}), InverseAngularVelocity{s_per_rad: x*y});
1018 assert_eq!(div_check(&Time{s: x}, &AngularVelocity{radps: y}), InverseAngularAcceleration{s2prad: x/y});
1019 assert_eq!(div_check(&Time{s: x}, &Energy{J: y}), InversePower{per_W: x/y});
1020 assert_eq!(div_check(&Time{s: x}, &Torque{Nm: y}), InversePower{per_W: x/y});
1021 assert_eq!(div_check(&Time{s: x}, &InverseAcceleration{s2pm: y}), Velocity{mps: x/y});
1022 assert_eq!(div_check(&Time{s: x}, &InverseAngularAcceleration{s2prad: y}), AngularVelocity{radps: x/y});
1023 assert_eq!(mul_check(&Time{s: x}, &InverseAngularVelocity{s_per_rad: y}), InverseAngularAcceleration{s2prad: x*y});
1024 assert_eq!(div_check(&Time{s: x}, &InverseAngularVelocity{s_per_rad: y}), Angle{rad: x/y});
1025 assert_eq!(mul_check(&Time{s: x}, &InverseEnergy{per_J: y}), InversePower{per_W: x*y});
1026 assert_eq!(mul_check(&Time{s: x}, &InverseTorque{per_Nm: y}), InversePower{per_W: x*y});
1027 assert_eq!(div_check(&Time{s: x}, &InverseForce{per_N: y}), Momentum{kgmps: x/y});
1028 assert_eq!(mul_check(&Time{s: x}, &InverseMomentum{s_per_kgm: y}), InverseForce{per_N: x*y});
1029 assert_eq!(div_check(&Time{s: x}, &InversePower{per_W: y}), Energy{J: x/y});
1030 assert_eq!(div_check(&Time{s: x}, &Momentum{kgmps: y}), InverseForce{per_N: x/y});
1031 assert_eq!(mul_check(&Time{s: x}, &TimePerDistance{spm: y}), InverseAcceleration{s2pm: x*y});
1032 assert_eq!(div_check(&Time{s: x}, &TimePerDistance{spm: y}), Distance{m: x/y});
1033 assert_eq!(div_check(&Time{s: x}, &Velocity{mps: y}), InverseAcceleration{s2pm: x/y});
1034 assert_eq!(mul_check(&CatalyticActivity{molps: x}, &InverseAmount{per_mol: y}), Frequency{Hz: x*y});
1035 assert_eq!(div_check(&Concentration{molpm3: x}, &Amount{mol: y}), InverseVolume{per_m3: x/y});
1036 assert_eq!(mul_check(&Concentration{molpm3: x}, &InverseAmount{per_mol: y}), InverseVolume{per_m3: x*y});
1037 assert_eq!(div_check(&Concentration{molpm3: x}, &InverseVolume{per_m3: y}), Amount{mol: x/y});
1038 assert_eq!(mul_check(&Concentration{molpm3: x}, &VolumePerMass{m3_per_kg: y}), Molality{molpkg: x*y});
1039 assert_eq!(mul_check(&InverseCatalyticActivity{s_per_mol: x}, &Amount{mol: y}), Time{s: x*y});
1040 assert_eq!(div_check(&InverseCatalyticActivity{s_per_mol: x}, &InverseAmount{per_mol: y}), Time{s: x/y});
1041 assert_eq!(div_check(&InverseCatalyticActivity{s_per_mol: x}, &Time{s: y}), InverseAmount{per_mol: x/y});
1042 assert_eq!(mul_check(&InverseCatalyticActivity{s_per_mol: x}, &Frequency{Hz: y}), InverseAmount{per_mol: x*y});
1043 assert_eq!(div_check(&InverseSpecificHeatCapacity{kgK_per_J: x}, &InverseAbsorbedDose{per_Gy: y}), Temperature{K: x/y});
1044 assert_eq!(div_check(&InverseSpecificHeatCapacity{kgK_per_J: x}, &InverseDoseEquivalent{per_Sv: y}), Temperature{K: x/y});
1045 assert_eq!(div_check(&Molality{molpkg: x}, &Amount{mol: y}), InverseMass{per_kg: x/y});
1046 assert_eq!(mul_check(&Molality{molpkg: x}, &InverseAmount{per_mol: y}), InverseMass{per_kg: x*y});
1047 assert_eq!(div_check(&Molality{molpkg: x}, &InverseMass{per_kg: y}), Amount{mol: x/y});
1048 assert_eq!(div_check(&Molality{molpkg: x}, &Concentration{molpm3: y}), VolumePerMass{m3_per_kg: x/y});
1049 assert_eq!(mul_check(&Molality{molpkg: x}, &MolarVolume{m3_per_mol: y}), VolumePerMass{m3_per_kg: x*y});
1050 assert_eq!(div_check(&Molality{molpkg: x}, &VolumePerMass{m3_per_kg: y}), Concentration{molpm3: x/y});
1051 assert_eq!(div_check(&MolarMass{kgpmol: x}, &InverseAmount{per_mol: y}), Mass{kg: x/y});
1052 assert_eq!(mul_check(&MolarMass{kgpmol: x}, &InverseMass{per_kg: y}), InverseAmount{per_mol: x*y});
1053 assert_eq!(div_check(&MolarMass{kgpmol: x}, &Mass{kg: y}), InverseAmount{per_mol: x/y});
1054 assert_eq!(div_check(&MolarMass{kgpmol: x}, &MolarVolume{m3_per_mol: y}), Density{kgpm3: x/y});
1055 assert_eq!(div_check(&MolarMass{kgpmol: x}, &Density{kgpm3: y}), MolarVolume{m3_per_mol: x/y});
1056 assert_eq!(mul_check(&MolarMass{kgpmol: x}, &VolumePerMass{m3_per_kg: y}), MolarVolume{m3_per_mol: x*y});
1057 assert_eq!(mul_check(&MolarVolume{m3_per_mol: x}, &Amount{mol: y}), Volume{m3: x*y});
1058 assert_eq!(div_check(&MolarVolume{m3_per_mol: x}, &InverseAmount{per_mol: y}), Volume{m3: x/y});
1059 assert_eq!(mul_check(&MolarVolume{m3_per_mol: x}, &Molality{molpkg: y}), VolumePerMass{m3_per_kg: x*y});
1060 assert_eq!(div_check(&MolarVolume{m3_per_mol: x}, &MolarMass{kgpmol: y}), VolumePerMass{m3_per_kg: x/y});
1061 assert_eq!(mul_check(&MolarVolume{m3_per_mol: x}, &InverseVolume{per_m3: y}), InverseAmount{per_mol: x*y});
1062 assert_eq!(div_check(&MolarVolume{m3_per_mol: x}, &Volume{m3: y}), InverseAmount{per_mol: x/y});
1063 assert_eq!(mul_check(&MolarVolume{m3_per_mol: x}, &Density{kgpm3: y}), MolarMass{kgpmol: x*y});
1064 assert_eq!(div_check(&MolarVolume{m3_per_mol: x}, &VolumePerMass{m3_per_kg: y}), MolarMass{kgpmol: x/y});
1065 assert_eq!(mul_check(&SpecificHeatCapacity{J_per_kgK: x}, &InverseAbsorbedDose{per_Gy: y}), InverseTemperature{per_K: x*y});
1066 assert_eq!(mul_check(&SpecificHeatCapacity{J_per_kgK: x}, &InverseDoseEquivalent{per_Sv: y}), InverseTemperature{per_K: x*y});
1067 assert_eq!(div_check(&AreaPerLumen{m2_per_lm: x}, &InverseLuminousFlux{per_lm: y}), Area{m2: x/y});
1068 assert_eq!(mul_check(&AreaPerLumen{m2_per_lm: x}, &LuminousFlux{lm: y}), Area{m2: x*y});
1069 assert_eq!(div_check(&AreaPerLumen{m2_per_lm: x}, &Area{m2: y}), InverseLuminousFlux{per_lm: x/y});
1070 assert_eq!(mul_check(&AreaPerLumen{m2_per_lm: x}, &InverseArea{per_m2: y}), InverseLuminousFlux{per_lm: x*y});
1071 assert_eq!(div_check(&Capacitance{F: x}, &Charge{C: y}), InverseVoltage{per_V: x/y});
1072 assert_eq!(mul_check(&Capacitance{F: x}, &InverseCharge{per_C: y}), InverseVoltage{per_V: x*y});
1073 assert_eq!(div_check(&Capacitance{F: x}, &InverseVoltage{per_V: y}), Charge{C: x/y});
1074 assert_eq!(mul_check(&Charge{C: x}, &InverseCurrent{per_A: y}), Time{s: x*y});
1075 assert_eq!(mul_check(&Charge{C: x}, &Elastance{per_F: y}), Voltage{V: x*y});
1076 assert_eq!(mul_check(&Charge{C: x}, &InverseMagneticFlux{per_Wb: y}), Conductance{S: x*y});
1077 assert_eq!(mul_check(&Charge{C: x}, &InverseVoltage{per_V: y}), Capacitance{F: x*y});
1078 assert_eq!(div_check(&Charge{C: x}, &InverseVoltage{per_V: y}), Energy{J: x/y});
1079 assert_eq!(div_check(&Charge{C: x}, &Energy{J: y}), InverseVoltage{per_V: x/y});
1080 assert_eq!(div_check(&Charge{C: x}, &Torque{Nm: y}), InverseVoltage{per_V: x/y});
1081 assert_eq!(mul_check(&Charge{C: x}, &InverseEnergy{per_J: y}), InverseVoltage{per_V: x*y});
1082 assert_eq!(mul_check(&Charge{C: x}, &InverseTorque{per_Nm: y}), InverseVoltage{per_V: x*y});
1083 assert_eq!(div_check(&Conductance{S: x}, &Current{A: y}), InverseVoltage{per_V: x/y});
1084 assert_eq!(mul_check(&Conductance{S: x}, &InverseCurrent{per_A: y}), InverseVoltage{per_V: x*y});
1085 assert_eq!(div_check(&Conductance{S: x}, &Time{s: y}), InverseInductance{per_H: x/y});
1086 assert_eq!(div_check(&Conductance{S: x}, &Charge{C: y}), InverseMagneticFlux{per_Wb: x/y});
1087 assert_eq!(mul_check(&Conductance{S: x}, &Elastance{per_F: y}), Frequency{Hz: x*y});
1088 assert_eq!(mul_check(&Conductance{S: x}, &InverseCharge{per_C: y}), InverseMagneticFlux{per_Wb: x*y});
1089 assert_eq!(div_check(&Conductance{S: x}, &InverseInductance{per_H: y}), Time{s: x/y});
1090 assert_eq!(div_check(&Conductance{S: x}, &InverseMagneticFlux{per_Wb: y}), Charge{C: x/y});
1091 assert_eq!(div_check(&Conductance{S: x}, &InverseVoltage{per_V: y}), Current{A: x/y});
1092 assert_eq!(mul_check(&Conductance{S: x}, &Frequency{Hz: y}), InverseInductance{per_H: x*y});
1093 assert_eq!(mul_check(&Elastance{per_F: x}, &Time{s: y}), Resistance{Ohm: x*y});
1094 assert_eq!(mul_check(&Elastance{per_F: x}, &Charge{C: y}), Voltage{V: x*y});
1095 assert_eq!(mul_check(&Elastance{per_F: x}, &Conductance{S: y}), Frequency{Hz: x*y});
1096 assert_eq!(div_check(&Elastance{per_F: x}, &InverseCharge{per_C: y}), Voltage{V: x/y});
1097 assert_eq!(mul_check(&Elastance{per_F: x}, &InverseVoltage{per_V: y}), InverseCharge{per_C: x*y});
1098 assert_eq!(div_check(&Elastance{per_F: x}, &Resistance{Ohm: y}), Frequency{Hz: x/y});
1099 assert_eq!(div_check(&Elastance{per_F: x}, &Voltage{V: y}), InverseCharge{per_C: x/y});
1100 assert_eq!(div_check(&Elastance{per_F: x}, &Frequency{Hz: y}), Resistance{Ohm: x/y});
1101 assert_eq!(mul_check(&Illuminance{lux: x}, &InverseLuminousFlux{per_lm: y}), InverseArea{per_m2: x*y});
1102 assert_eq!(div_check(&Illuminance{lux: x}, &LuminousFlux{lm: y}), InverseArea{per_m2: x/y});
1103 assert_eq!(div_check(&Illuminance{lux: x}, &InverseArea{per_m2: y}), LuminousFlux{lm: x/y});
1104 assert_eq!(div_check(&Inductance{H: x}, &InverseCurrent{per_A: y}), MagneticFlux{Wb: x/y});
1105 assert_eq!(mul_check(&Inductance{H: x}, &InverseMagneticFlux{per_Wb: y}), InverseCurrent{per_A: x*y});
1106 assert_eq!(div_check(&Inductance{H: x}, &MagneticFlux{Wb: y}), InverseCurrent{per_A: x/y});
1107 assert_eq!(mul_check(&InverseCharge{per_C: x}, &Current{A: y}), Frequency{Hz: x*y});
1108 assert_eq!(div_check(&InverseCharge{per_C: x}, &InverseCurrent{per_A: y}), Frequency{Hz: x/y});
1109 assert_eq!(mul_check(&InverseCharge{per_C: x}, &Time{s: y}), InverseCurrent{per_A: x*y});
1110 assert_eq!(mul_check(&InverseCharge{per_C: x}, &Capacitance{F: y}), InverseVoltage{per_V: x*y});
1111 assert_eq!(mul_check(&InverseCharge{per_C: x}, &Conductance{S: y}), InverseMagneticFlux{per_Wb: x*y});
1112 assert_eq!(div_check(&InverseCharge{per_C: x}, &Elastance{per_F: y}), InverseVoltage{per_V: x/y});
1113 assert_eq!(div_check(&InverseCharge{per_C: x}, &InverseMagneticFlux{per_Wb: y}), Resistance{Ohm: x/y});
1114 assert_eq!(mul_check(&InverseCharge{per_C: x}, &InverseVoltage{per_V: y}), InverseEnergy{per_J: x*y});
1115 assert_eq!(div_check(&InverseCharge{per_C: x}, &InverseVoltage{per_V: y}), Elastance{per_F: x/y});
1116 assert_eq!(mul_check(&InverseCharge{per_C: x}, &MagneticFlux{Wb: y}), Resistance{Ohm: x*y});
1117 assert_eq!(div_check(&InverseCharge{per_C: x}, &Resistance{Ohm: y}), InverseMagneticFlux{per_Wb: x/y});
1118 assert_eq!(mul_check(&InverseCharge{per_C: x}, &Voltage{V: y}), Elastance{per_F: x*y});
1119 assert_eq!(div_check(&InverseCharge{per_C: x}, &Voltage{V: y}), InverseEnergy{per_J: x/y});
1120 assert_eq!(mul_check(&InverseCharge{per_C: x}, &Energy{J: y}), Voltage{V: x*y});
1121 assert_eq!(mul_check(&InverseCharge{per_C: x}, &Torque{Nm: y}), Voltage{V: x*y});
1122 assert_eq!(div_check(&InverseCharge{per_C: x}, &Frequency{Hz: y}), InverseCurrent{per_A: x/y});
1123 assert_eq!(div_check(&InverseCharge{per_C: x}, &InverseEnergy{per_J: y}), Voltage{V: x/y});
1124 assert_eq!(div_check(&InverseCharge{per_C: x}, &InverseTorque{per_Nm: y}), Voltage{V: x/y});
1125 assert_eq!(div_check(&InverseInductance{per_H: x}, &Current{A: y}), InverseMagneticFlux{per_Wb: x/y});
1126 assert_eq!(mul_check(&InverseInductance{per_H: x}, &InverseCurrent{per_A: y}), InverseMagneticFlux{per_Wb: x*y});
1127 assert_eq!(mul_check(&InverseInductance{per_H: x}, &Time{s: y}), Conductance{S: x*y});
1128 assert_eq!(div_check(&InverseInductance{per_H: x}, &Conductance{S: y}), Frequency{Hz: x/y});
1129 assert_eq!(div_check(&InverseInductance{per_H: x}, &InverseMagneticFlux{per_Wb: y}), Current{A: x/y});
1130 assert_eq!(mul_check(&InverseInductance{per_H: x}, &MagneticFlux{Wb: y}), Current{A: x*y});
1131 assert_eq!(mul_check(&InverseInductance{per_H: x}, &Resistance{Ohm: y}), Frequency{Hz: x*y});
1132 assert_eq!(div_check(&InverseInductance{per_H: x}, &Frequency{Hz: y}), Conductance{S: x/y});
1133 assert_eq!(div_check(&InverseLuminousFlux{per_lm: x}, &InverseLuminosity{per_cd: y}), InverseSolidAngle{per_sr: x/y});
1134 assert_eq!(mul_check(&InverseLuminousFlux{per_lm: x}, &Luminosity{cd: y}), InverseSolidAngle{per_sr: x*y});
1135 assert_eq!(div_check(&InverseLuminousFlux{per_lm: x}, &AreaPerLumen{m2_per_lm: y}), InverseArea{per_m2: x/y});
1136 assert_eq!(mul_check(&InverseLuminousFlux{per_lm: x}, &Illuminance{lux: y}), InverseArea{per_m2: x*y});
1137 assert_eq!(mul_check(&InverseLuminousFlux{per_lm: x}, &Area{m2: y}), AreaPerLumen{m2_per_lm: x*y});
1138 assert_eq!(div_check(&InverseLuminousFlux{per_lm: x}, &InverseArea{per_m2: y}), AreaPerLumen{m2_per_lm: x/y});
1139 assert_eq!(div_check(&InverseLuminousFlux{per_lm: x}, &InverseSolidAngle{per_sr: y}), InverseLuminosity{per_cd: x/y});
1140 assert_eq!(mul_check(&InverseLuminousFlux{per_lm: x}, &SolidAngle{sr: y}), InverseLuminosity{per_cd: x*y});
1141 assert_eq!(mul_check(&InverseMagneticFlux{per_Wb: x}, &Current{A: y}), InverseInductance{per_H: x*y});
1142 assert_eq!(div_check(&InverseMagneticFlux{per_Wb: x}, &Current{A: y}), InverseEnergy{per_J: x/y});
1143 assert_eq!(mul_check(&InverseMagneticFlux{per_Wb: x}, &InverseCurrent{per_A: y}), InverseEnergy{per_J: x*y});
1144 assert_eq!(div_check(&InverseMagneticFlux{per_Wb: x}, &InverseCurrent{per_A: y}), InverseInductance{per_H: x/y});
1145 assert_eq!(mul_check(&InverseMagneticFlux{per_Wb: x}, &Time{s: y}), InverseVoltage{per_V: x*y});
1146 assert_eq!(mul_check(&InverseMagneticFlux{per_Wb: x}, &Charge{C: y}), Conductance{S: x*y});
1147 assert_eq!(div_check(&InverseMagneticFlux{per_Wb: x}, &Conductance{S: y}), InverseCharge{per_C: x/y});
1148 assert_eq!(mul_check(&InverseMagneticFlux{per_Wb: x}, &Inductance{H: y}), InverseCurrent{per_A: x*y});
1149 assert_eq!(div_check(&InverseMagneticFlux{per_Wb: x}, &InverseCharge{per_C: y}), Conductance{S: x/y});
1150 assert_eq!(div_check(&InverseMagneticFlux{per_Wb: x}, &InverseInductance{per_H: y}), InverseCurrent{per_A: x/y});
1151 assert_eq!(div_check(&InverseMagneticFlux{per_Wb: x}, &InverseMagneticFluxDensity{m2_per_Wb: y}), InverseArea{per_m2: x/y});
1152 assert_eq!(div_check(&InverseMagneticFlux{per_Wb: x}, &InverseVoltage{per_V: y}), Frequency{Hz: x/y});
1153 assert_eq!(mul_check(&InverseMagneticFlux{per_Wb: x}, &MagneticFluxDensity{T: y}), InverseArea{per_m2: x*y});
1154 assert_eq!(mul_check(&InverseMagneticFlux{per_Wb: x}, &Resistance{Ohm: y}), InverseCharge{per_C: x*y});
1155 assert_eq!(mul_check(&InverseMagneticFlux{per_Wb: x}, &Voltage{V: y}), Frequency{Hz: x*y});
1156 assert_eq!(mul_check(&InverseMagneticFlux{per_Wb: x}, &Area{m2: y}), InverseMagneticFluxDensity{m2_per_Wb: x*y});
1157 assert_eq!(div_check(&InverseMagneticFlux{per_Wb: x}, &InverseArea{per_m2: y}), InverseMagneticFluxDensity{m2_per_Wb: x/y});
1158 assert_eq!(mul_check(&InverseMagneticFlux{per_Wb: x}, &Energy{J: y}), Current{A: x*y});
1159 assert_eq!(mul_check(&InverseMagneticFlux{per_Wb: x}, &Torque{Nm: y}), Current{A: x*y});
1160 assert_eq!(div_check(&InverseMagneticFlux{per_Wb: x}, &Frequency{Hz: y}), InverseVoltage{per_V: x/y});
1161 assert_eq!(div_check(&InverseMagneticFlux{per_Wb: x}, &InverseEnergy{per_J: y}), Current{A: x/y});
1162 assert_eq!(div_check(&InverseMagneticFlux{per_Wb: x}, &InverseTorque{per_Nm: y}), Current{A: x/y});
1163 assert_eq!(div_check(&InverseMagneticFluxDensity{m2_per_Wb: x}, &InverseMagneticFlux{per_Wb: y}), Area{m2: x/y});
1164 assert_eq!(mul_check(&InverseMagneticFluxDensity{m2_per_Wb: x}, &MagneticFlux{Wb: y}), Area{m2: x*y});
1165 assert_eq!(div_check(&InverseMagneticFluxDensity{m2_per_Wb: x}, &Area{m2: y}), InverseMagneticFlux{per_Wb: x/y});
1166 assert_eq!(mul_check(&InverseMagneticFluxDensity{m2_per_Wb: x}, &InverseArea{per_m2: y}), InverseMagneticFlux{per_Wb: x*y});
1167 assert_eq!(mul_check(&InverseVoltage{per_V: x}, &Current{A: y}), Conductance{S: x*y});
1168 assert_eq!(div_check(&InverseVoltage{per_V: x}, &Current{A: y}), InversePower{per_W: x/y});
1169 assert_eq!(mul_check(&InverseVoltage{per_V: x}, &InverseCurrent{per_A: y}), InversePower{per_W: x*y});
1170 assert_eq!(div_check(&InverseVoltage{per_V: x}, &InverseCurrent{per_A: y}), Conductance{S: x/y});
1171 assert_eq!(div_check(&InverseVoltage{per_V: x}, &Time{s: y}), InverseMagneticFlux{per_Wb: x/y});
1172 assert_eq!(div_check(&InverseVoltage{per_V: x}, &Capacitance{F: y}), InverseCharge{per_C: x/y});
1173 assert_eq!(mul_check(&InverseVoltage{per_V: x}, &Charge{C: y}), Capacitance{F: x*y});
1174 assert_eq!(div_check(&InverseVoltage{per_V: x}, &Charge{C: y}), InverseEnergy{per_J: x/y});
1175 assert_eq!(div_check(&InverseVoltage{per_V: x}, &Conductance{S: y}), InverseCurrent{per_A: x/y});
1176 assert_eq!(mul_check(&InverseVoltage{per_V: x}, &Elastance{per_F: y}), InverseCharge{per_C: x*y});
1177 assert_eq!(mul_check(&InverseVoltage{per_V: x}, &InverseCharge{per_C: y}), InverseEnergy{per_J: x*y});
1178 assert_eq!(div_check(&InverseVoltage{per_V: x}, &InverseCharge{per_C: y}), Capacitance{F: x/y});
1179 assert_eq!(div_check(&InverseVoltage{per_V: x}, &InverseMagneticFlux{per_Wb: y}), Time{s: x/y});
1180 assert_eq!(mul_check(&InverseVoltage{per_V: x}, &MagneticFlux{Wb: y}), Time{s: x*y});
1181 assert_eq!(mul_check(&InverseVoltage{per_V: x}, &Resistance{Ohm: y}), InverseCurrent{per_A: x*y});
1182 assert_eq!(mul_check(&InverseVoltage{per_V: x}, &Energy{J: y}), Charge{C: x*y});
1183 assert_eq!(mul_check(&InverseVoltage{per_V: x}, &Torque{Nm: y}), Charge{C: x*y});
1184 assert_eq!(mul_check(&InverseVoltage{per_V: x}, &Frequency{Hz: y}), InverseMagneticFlux{per_Wb: x*y});
1185 assert_eq!(div_check(&InverseVoltage{per_V: x}, &InverseEnergy{per_J: y}), Charge{C: x/y});
1186 assert_eq!(div_check(&InverseVoltage{per_V: x}, &InverseTorque{per_Nm: y}), Charge{C: x/y});
1187 assert_eq!(div_check(&InverseVoltage{per_V: x}, &InversePower{per_W: y}), Current{A: x/y});
1188 assert_eq!(mul_check(&InverseVoltage{per_V: x}, &Power{W: y}), Current{A: x*y});
1189 assert_eq!(mul_check(&LuminousFlux{lm: x}, &InverseLuminosity{per_cd: y}), SolidAngle{sr: x*y});
1190 assert_eq!(mul_check(&LuminousFlux{lm: x}, &AreaPerLumen{m2_per_lm: y}), Area{m2: x*y});
1191 assert_eq!(mul_check(&LuminousFlux{lm: x}, &InverseArea{per_m2: y}), Illuminance{lux: x*y});
1192 assert_eq!(mul_check(&LuminousFlux{lm: x}, &InverseSolidAngle{per_sr: y}), Luminosity{cd: x*y});
1193 assert_eq!(mul_check(&MagneticFlux{Wb: x}, &InverseCurrent{per_A: y}), Inductance{H: x*y});
1194 assert_eq!(div_check(&MagneticFlux{Wb: x}, &InverseCurrent{per_A: y}), Energy{J: x/y});
1195 assert_eq!(mul_check(&MagneticFlux{Wb: x}, &InverseCharge{per_C: y}), Resistance{Ohm: x*y});
1196 assert_eq!(mul_check(&MagneticFlux{Wb: x}, &InverseInductance{per_H: y}), Current{A: x*y});
1197 assert_eq!(mul_check(&MagneticFlux{Wb: x}, &InverseMagneticFluxDensity{m2_per_Wb: y}), Area{m2: x*y});
1198 assert_eq!(mul_check(&MagneticFlux{Wb: x}, &InverseVoltage{per_V: y}), Time{s: x*y});
1199 assert_eq!(mul_check(&MagneticFlux{Wb: x}, &InverseArea{per_m2: y}), MagneticFluxDensity{T: x*y});
1200 assert_eq!(div_check(&MagneticFlux{Wb: x}, &Energy{J: y}), InverseCurrent{per_A: x/y});
1201 assert_eq!(div_check(&MagneticFlux{Wb: x}, &Torque{Nm: y}), InverseCurrent{per_A: x/y});
1202 assert_eq!(mul_check(&MagneticFlux{Wb: x}, &InverseEnergy{per_J: y}), InverseCurrent{per_A: x*y});
1203 assert_eq!(mul_check(&MagneticFlux{Wb: x}, &InverseTorque{per_Nm: y}), InverseCurrent{per_A: x*y});
1204 assert_eq!(mul_check(&MagneticFluxDensity{T: x}, &InverseMagneticFlux{per_Wb: y}), InverseArea{per_m2: x*y});
1205 assert_eq!(div_check(&MagneticFluxDensity{T: x}, &MagneticFlux{Wb: y}), InverseArea{per_m2: x/y});
1206 assert_eq!(div_check(&MagneticFluxDensity{T: x}, &InverseArea{per_m2: y}), MagneticFlux{Wb: x/y});
1207 assert_eq!(div_check(&Resistance{Ohm: x}, &InverseCurrent{per_A: y}), Voltage{V: x/y});
1208 assert_eq!(div_check(&Resistance{Ohm: x}, &Time{s: y}), Elastance{per_F: x/y});
1209 assert_eq!(div_check(&Resistance{Ohm: x}, &Elastance{per_F: y}), Time{s: x/y});
1210 assert_eq!(div_check(&Resistance{Ohm: x}, &InverseCharge{per_C: y}), MagneticFlux{Wb: x/y});
1211 assert_eq!(mul_check(&Resistance{Ohm: x}, &InverseInductance{per_H: y}), Frequency{Hz: x*y});
1212 assert_eq!(mul_check(&Resistance{Ohm: x}, &InverseMagneticFlux{per_Wb: y}), InverseCharge{per_C: x*y});
1213 assert_eq!(mul_check(&Resistance{Ohm: x}, &InverseVoltage{per_V: y}), InverseCurrent{per_A: x*y});
1214 assert_eq!(div_check(&Resistance{Ohm: x}, &MagneticFlux{Wb: y}), InverseCharge{per_C: x/y});
1215 assert_eq!(div_check(&Resistance{Ohm: x}, &Voltage{V: y}), InverseCurrent{per_A: x/y});
1216 assert_eq!(mul_check(&Resistance{Ohm: x}, &Frequency{Hz: y}), Elastance{per_F: x*y});
1217 assert_eq!(mul_check(&Voltage{V: x}, &InverseCurrent{per_A: y}), Resistance{Ohm: x*y});
1218 assert_eq!(div_check(&Voltage{V: x}, &InverseCurrent{per_A: y}), Power{W: x/y});
1219 assert_eq!(div_check(&Voltage{V: x}, &Charge{C: y}), Elastance{per_F: x/y});
1220 assert_eq!(div_check(&Voltage{V: x}, &Elastance{per_F: y}), Charge{C: x/y});
1221 assert_eq!(mul_check(&Voltage{V: x}, &InverseCharge{per_C: y}), Elastance{per_F: x*y});
1222 assert_eq!(div_check(&Voltage{V: x}, &InverseCharge{per_C: y}), Energy{J: x/y});
1223 assert_eq!(mul_check(&Voltage{V: x}, &InverseMagneticFlux{per_Wb: y}), Frequency{Hz: x*y});
1224 assert_eq!(div_check(&Voltage{V: x}, &Energy{J: y}), InverseCharge{per_C: x/y});
1225 assert_eq!(div_check(&Voltage{V: x}, &Torque{Nm: y}), InverseCharge{per_C: x/y});
1226 assert_eq!(mul_check(&Voltage{V: x}, &InverseEnergy{per_J: y}), InverseCharge{per_C: x*y});
1227 assert_eq!(mul_check(&Voltage{V: x}, &InverseTorque{per_Nm: y}), InverseCharge{per_C: x*y});
1228 assert_eq!(mul_check(&Voltage{V: x}, &InversePower{per_W: y}), InverseCurrent{per_A: x*y});
1229 assert_eq!(div_check(&Voltage{V: x}, &Power{W: y}), InverseCurrent{per_A: x/y});
1230 assert_eq!(mul_check(&Angle{rad: x}, &Angle{rad: y}), SolidAngle{sr: x*y});
1231 assert_eq!(div_check(&Angle{rad: x}, &InverseAngle{per_rad: y}), SolidAngle{sr: x/y});
1232 assert_eq!(mul_check(&Angle{rad: x}, &InverseSolidAngle{per_sr: y}), InverseAngle{per_rad: x*y});
1233 assert_eq!(div_check(&Angle{rad: x}, &SolidAngle{sr: y}), InverseAngle{per_rad: x/y});
1234 assert_eq!(mul_check(&Angle{rad: x}, &InverseAngularVelocity{s_per_rad: y}), Time{s: x*y});
1235 assert_eq!(mul_check(&Area{m2: x}, &InverseDistance{per_m: y}), Distance{m: x*y});
1236 assert_eq!(div_check(&Area{m2: x}, &InverseDistance{per_m: y}), Volume{m3: x/y});
1237 assert_eq!(mul_check(&Area{m2: x}, &InverseMass{per_kg: y}), AreaPerMass{m2_per_kg: x*y});
1238 assert_eq!(div_check(&Area{m2: x}, &Mass{kg: y}), AreaPerMass{m2_per_kg: x/y});
1239 assert_eq!(div_check(&Area{m2: x}, &AreaPerLumen{m2_per_lm: y}), LuminousFlux{lm: x/y});
1240 assert_eq!(mul_check(&Area{m2: x}, &InverseLuminousFlux{per_lm: y}), AreaPerLumen{m2_per_lm: x*y});
1241 assert_eq!(mul_check(&Area{m2: x}, &InverseMagneticFlux{per_Wb: y}), InverseMagneticFluxDensity{m2_per_Wb: x*y});
1242 assert_eq!(div_check(&Area{m2: x}, &InverseMagneticFluxDensity{m2_per_Wb: y}), MagneticFlux{Wb: x/y});
1243 assert_eq!(div_check(&Area{m2: x}, &LuminousFlux{lm: y}), AreaPerLumen{m2_per_lm: x/y});
1244 assert_eq!(div_check(&Area{m2: x}, &MagneticFlux{Wb: y}), InverseMagneticFluxDensity{m2_per_Wb: x/y});
1245 assert_eq!(mul_check(&Area{m2: x}, &InverseVolume{per_m3: y}), InverseDistance{per_m: x*y});
1246 assert_eq!(div_check(&Area{m2: x}, &Volume{m3: y}), InverseDistance{per_m: x/y});
1247 assert_eq!(div_check(&Area{m2: x}, &AreaPerMass{m2_per_kg: y}), Mass{kg: x/y});
1248 assert_eq!(div_check(&Area{m2: x}, &Force{N: y}), InversePressure{per_Pa: x/y});
1249 assert_eq!(mul_check(&Area{m2: x}, &InverseForce{per_N: y}), InversePressure{per_Pa: x*y});
1250 assert_eq!(mul_check(&Area{m2: x}, &InverseMomentOfInertia{per_kgm2: y}), InverseMass{per_kg: x*y});
1251 assert_eq!(div_check(&Area{m2: x}, &InversePressure{per_Pa: y}), Force{N: x/y});
1252 assert_eq!(div_check(&Area{m2: x}, &MomentOfInertia{kgm2: y}), InverseMass{per_kg: x/y});
1253 assert_eq!(mul_check(&InverseAngle{per_rad: x}, &Time{s: y}), InverseAngularVelocity{s_per_rad: x*y});
1254 assert_eq!(div_check(&InverseAngle{per_rad: x}, &Angle{rad: y}), InverseSolidAngle{per_sr: x/y});
1255 assert_eq!(mul_check(&InverseAngle{per_rad: x}, &InverseAngle{per_rad: y}), InverseSolidAngle{per_sr: x*y});
1256 assert_eq!(div_check(&InverseAngle{per_rad: x}, &InverseSolidAngle{per_sr: y}), Angle{rad: x/y});
1257 assert_eq!(mul_check(&InverseAngle{per_rad: x}, &SolidAngle{sr: y}), Angle{rad: x*y});
1258 assert_eq!(mul_check(&InverseAngle{per_rad: x}, &AngularVelocity{radps: y}), Frequency{Hz: x*y});
1259 assert_eq!(div_check(&InverseAngle{per_rad: x}, &Frequency{Hz: y}), InverseAngularVelocity{s_per_rad: x/y});
1260 assert_eq!(div_check(&InverseAngle{per_rad: x}, &InverseAngularVelocity{s_per_rad: y}), Frequency{Hz: x/y});
1261 assert_eq!(mul_check(&InverseArea{per_m2: x}, &Distance{m: y}), InverseDistance{per_m: x*y});
1262 assert_eq!(div_check(&InverseArea{per_m2: x}, &Distance{m: y}), InverseVolume{per_m3: x/y});
1263 assert_eq!(mul_check(&InverseArea{per_m2: x}, &InverseDistance{per_m: y}), InverseVolume{per_m3: x*y});
1264 assert_eq!(div_check(&InverseArea{per_m2: x}, &InverseDistance{per_m: y}), InverseDistance{per_m: x/y});
1265 assert_eq!(div_check(&InverseArea{per_m2: x}, &InverseMass{per_kg: y}), AreaDensity{kgpm2: x/y});
1266 assert_eq!(mul_check(&InverseArea{per_m2: x}, &Mass{kg: y}), AreaDensity{kgpm2: x*y});
1267 assert_eq!(mul_check(&InverseArea{per_m2: x}, &AreaPerLumen{m2_per_lm: y}), InverseLuminousFlux{per_lm: x*y});
1268 assert_eq!(div_check(&InverseArea{per_m2: x}, &Illuminance{lux: y}), InverseLuminousFlux{per_lm: x/y});
1269 assert_eq!(div_check(&InverseArea{per_m2: x}, &InverseLuminousFlux{per_lm: y}), Illuminance{lux: x/y});
1270 assert_eq!(div_check(&InverseArea{per_m2: x}, &InverseMagneticFlux{per_Wb: y}), MagneticFluxDensity{T: x/y});
1271 assert_eq!(mul_check(&InverseArea{per_m2: x}, &InverseMagneticFluxDensity{m2_per_Wb: y}), InverseMagneticFlux{per_Wb: x*y});
1272 assert_eq!(mul_check(&InverseArea{per_m2: x}, &LuminousFlux{lm: y}), Illuminance{lux: x*y});
1273 assert_eq!(mul_check(&InverseArea{per_m2: x}, &MagneticFlux{Wb: y}), MagneticFluxDensity{T: x*y});
1274 assert_eq!(div_check(&InverseArea{per_m2: x}, &MagneticFluxDensity{T: y}), InverseMagneticFlux{per_Wb: x/y});
1275 assert_eq!(div_check(&InverseArea{per_m2: x}, &InverseVolume{per_m3: y}), Distance{m: x/y});
1276 assert_eq!(mul_check(&InverseArea{per_m2: x}, &Volume{m3: y}), Distance{m: x*y});
1277 assert_eq!(div_check(&InverseArea{per_m2: x}, &AreaDensity{kgpm2: y}), InverseMass{per_kg: x/y});
1278 assert_eq!(mul_check(&InverseArea{per_m2: x}, &AreaPerMass{m2_per_kg: y}), InverseMass{per_kg: x*y});
1279 assert_eq!(mul_check(&InverseArea{per_m2: x}, &Force{N: y}), Pressure{Pa: x*y});
1280 assert_eq!(div_check(&InverseArea{per_m2: x}, &InverseForce{per_N: y}), Pressure{Pa: x/y});
1281 assert_eq!(div_check(&InverseArea{per_m2: x}, &InverseMomentOfInertia{per_kgm2: y}), Mass{kg: x/y});
1282 assert_eq!(mul_check(&InverseArea{per_m2: x}, &InversePressure{per_Pa: y}), InverseForce{per_N: x*y});
1283 assert_eq!(mul_check(&InverseArea{per_m2: x}, &MomentOfInertia{kgm2: y}), Mass{kg: x*y});
1284 assert_eq!(div_check(&InverseArea{per_m2: x}, &Pressure{Pa: y}), InverseForce{per_N: x/y});
1285 assert_eq!(mul_check(&InverseSolidAngle{per_sr: x}, &InverseLuminosity{per_cd: y}), InverseLuminousFlux{per_lm: x*y});
1286 assert_eq!(div_check(&InverseSolidAngle{per_sr: x}, &Luminosity{cd: y}), InverseLuminousFlux{per_lm: x/y});
1287 assert_eq!(div_check(&InverseSolidAngle{per_sr: x}, &InverseLuminousFlux{per_lm: y}), Luminosity{cd: x/y});
1288 assert_eq!(mul_check(&InverseSolidAngle{per_sr: x}, &LuminousFlux{lm: y}), Luminosity{cd: x*y});
1289 assert_eq!(mul_check(&InverseSolidAngle{per_sr: x}, &Angle{rad: y}), InverseAngle{per_rad: x*y});
1290 assert_eq!(div_check(&InverseSolidAngle{per_sr: x}, &InverseAngle{per_rad: y}), InverseAngle{per_rad: x/y});
1291 assert_eq!(mul_check(&InverseVolume{per_m3: x}, &Amount{mol: y}), Concentration{molpm3: x*y});
1292 assert_eq!(mul_check(&InverseVolume{per_m3: x}, &Distance{m: y}), InverseArea{per_m2: x*y});
1293 assert_eq!(div_check(&InverseVolume{per_m3: x}, &InverseAmount{per_mol: y}), Concentration{molpm3: x/y});
1294 assert_eq!(div_check(&InverseVolume{per_m3: x}, &InverseDistance{per_m: y}), InverseArea{per_m2: x/y});
1295 assert_eq!(div_check(&InverseVolume{per_m3: x}, &InverseMass{per_kg: y}), Density{kgpm3: x/y});
1296 assert_eq!(mul_check(&InverseVolume{per_m3: x}, &Mass{kg: y}), Density{kgpm3: x*y});
1297 assert_eq!(div_check(&InverseVolume{per_m3: x}, &Concentration{molpm3: y}), InverseAmount{per_mol: x/y});
1298 assert_eq!(mul_check(&InverseVolume{per_m3: x}, &MolarVolume{m3_per_mol: y}), InverseAmount{per_mol: x*y});
1299 assert_eq!(mul_check(&InverseVolume{per_m3: x}, &Area{m2: y}), InverseDistance{per_m: x*y});
1300 assert_eq!(div_check(&InverseVolume{per_m3: x}, &InverseArea{per_m2: y}), InverseDistance{per_m: x/y});
1301 assert_eq!(div_check(&InverseVolume{per_m3: x}, &Density{kgpm3: y}), InverseMass{per_kg: x/y});
1302 assert_eq!(mul_check(&InverseVolume{per_m3: x}, &Energy{J: y}), Pressure{Pa: x*y});
1303 assert_eq!(mul_check(&InverseVolume{per_m3: x}, &Torque{Nm: y}), Pressure{Pa: x*y});
1304 assert_eq!(div_check(&InverseVolume{per_m3: x}, &InverseEnergy{per_J: y}), Pressure{Pa: x/y});
1305 assert_eq!(div_check(&InverseVolume{per_m3: x}, &InverseTorque{per_Nm: y}), Pressure{Pa: x/y});
1306 assert_eq!(mul_check(&InverseVolume{per_m3: x}, &InversePressure{per_Pa: y}), InverseEnergy{per_J: x*y});
1307 assert_eq!(div_check(&InverseVolume{per_m3: x}, &Pressure{Pa: y}), InverseEnergy{per_J: x/y});
1308 assert_eq!(mul_check(&InverseVolume{per_m3: x}, &VolumePerMass{m3_per_kg: y}), InverseMass{per_kg: x*y});
1309 assert_eq!(div_check(&SolidAngle{sr: x}, &InverseLuminosity{per_cd: y}), LuminousFlux{lm: x/y});
1310 assert_eq!(mul_check(&SolidAngle{sr: x}, &InverseLuminousFlux{per_lm: y}), InverseLuminosity{per_cd: x*y});
1311 assert_eq!(div_check(&SolidAngle{sr: x}, &LuminousFlux{lm: y}), InverseLuminosity{per_cd: x/y});
1312 assert_eq!(div_check(&SolidAngle{sr: x}, &Angle{rad: y}), Angle{rad: x/y});
1313 assert_eq!(mul_check(&SolidAngle{sr: x}, &InverseAngle{per_rad: y}), Angle{rad: x*y});
1314 assert_eq!(div_check(&Volume{m3: x}, &Amount{mol: y}), MolarVolume{m3_per_mol: x/y});
1315 assert_eq!(mul_check(&Volume{m3: x}, &InverseAmount{per_mol: y}), MolarVolume{m3_per_mol: x*y});
1316 assert_eq!(mul_check(&Volume{m3: x}, &InverseDistance{per_m: y}), Area{m2: x*y});
1317 assert_eq!(mul_check(&Volume{m3: x}, &InverseMass{per_kg: y}), VolumePerMass{m3_per_kg: x*y});
1318 assert_eq!(div_check(&Volume{m3: x}, &Mass{kg: y}), VolumePerMass{m3_per_kg: x/y});
1319 assert_eq!(div_check(&Volume{m3: x}, &MolarVolume{m3_per_mol: y}), Amount{mol: x/y});
1320 assert_eq!(mul_check(&Volume{m3: x}, &InverseArea{per_m2: y}), Distance{m: x*y});
1321 assert_eq!(div_check(&Volume{m3: x}, &Energy{J: y}), InversePressure{per_Pa: x/y});
1322 assert_eq!(div_check(&Volume{m3: x}, &Torque{Nm: y}), InversePressure{per_Pa: x/y});
1323 assert_eq!(mul_check(&Volume{m3: x}, &InverseEnergy{per_J: y}), InversePressure{per_Pa: x*y});
1324 assert_eq!(mul_check(&Volume{m3: x}, &InverseTorque{per_Nm: y}), InversePressure{per_Pa: x*y});
1325 assert_eq!(div_check(&Volume{m3: x}, &InversePressure{per_Pa: y}), Energy{J: x/y});
1326 assert_eq!(div_check(&Volume{m3: x}, &VolumePerMass{m3_per_kg: y}), Mass{kg: x/y});
1327 assert_eq!(div_check(&Acceleration{mps2: x}, &InverseMass{per_kg: y}), Force{N: x/y});
1328 assert_eq!(div_check(&Acceleration{mps2: x}, &AreaPerMass{m2_per_kg: y}), Pressure{Pa: x/y});
1329 assert_eq!(div_check(&Acceleration{mps2: x}, &Force{N: y}), InverseMass{per_kg: x/y});
1330 assert_eq!(mul_check(&Acceleration{mps2: x}, &InverseForce{per_N: y}), InverseMass{per_kg: x*y});
1331 assert_eq!(div_check(&Acceleration{mps2: x}, &InverseMomentum{s_per_kgm: y}), Power{W: x/y});
1332 assert_eq!(mul_check(&Acceleration{mps2: x}, &InversePower{per_W: y}), InverseMomentum{s_per_kgm: x*y});
1333 assert_eq!(mul_check(&Acceleration{mps2: x}, &InversePressure{per_Pa: y}), AreaPerMass{m2_per_kg: x*y});
1334 assert_eq!(div_check(&Acceleration{mps2: x}, &Power{W: y}), InverseMomentum{s_per_kgm: x/y});
1335 assert_eq!(div_check(&Acceleration{mps2: x}, &Pressure{Pa: y}), AreaPerMass{m2_per_kg: x/y});
1336 assert_eq!(mul_check(&Acceleration{mps2: x}, &TimePerDistance{spm: y}), Frequency{Hz: x*y});
1337 assert_eq!(mul_check(&Acceleration{mps2: x}, &InverseAbsorbedDose{per_Gy: y}), InverseDistance{per_m: x*y});
1338 assert_eq!(mul_check(&Acceleration{mps2: x}, &InverseDoseEquivalent{per_Sv: y}), InverseDistance{per_m: x*y});
1339 assert_eq!(mul_check(&AngularAcceleration{radps2: x}, &InverseAngularVelocity{s_per_rad: y}), Frequency{Hz: x*y});
1340 assert_eq!(mul_check(&AngularMomentum{kgm2radps: x}, &InverseMomentOfInertia{per_kgm2: y}), AngularVelocity{radps: x*y});
1341 assert_eq!(mul_check(&AngularVelocity{radps: x}, &InverseAngle{per_rad: y}), Frequency{Hz: x*y});
1342 assert_eq!(mul_check(&AngularVelocity{radps: x}, &InverseAngularAcceleration{s2prad: y}), Time{s: x*y});
1343 assert_eq!(div_check(&AngularVelocity{radps: x}, &InverseMomentOfInertia{per_kgm2: y}), AngularMomentum{kgm2radps: x/y});
1344 assert_eq!(mul_check(&AreaDensity{kgpm2: x}, &InverseDistance{per_m: y}), Density{kgpm3: x*y});
1345 assert_eq!(mul_check(&AreaDensity{kgpm2: x}, &InverseMass{per_kg: y}), InverseArea{per_m2: x*y});
1346 assert_eq!(div_check(&AreaDensity{kgpm2: x}, &Mass{kg: y}), InverseArea{per_m2: x/y});
1347 assert_eq!(div_check(&AreaDensity{kgpm2: x}, &InverseArea{per_m2: y}), Mass{kg: x/y});
1348 assert_eq!(div_check(&AreaDensity{kgpm2: x}, &InverseAcceleration{s2pm: y}), Pressure{Pa: x/y});
1349 assert_eq!(mul_check(&AreaDensity{kgpm2: x}, &InversePressure{per_Pa: y}), InverseAcceleration{s2pm: x*y});
1350 assert_eq!(div_check(&AreaDensity{kgpm2: x}, &Pressure{Pa: y}), InverseAcceleration{s2pm: x/y});
1351 assert_eq!(mul_check(&AreaDensity{kgpm2: x}, &VolumePerMass{m3_per_kg: y}), Distance{m: x*y});
1352 assert_eq!(mul_check(&AreaPerMass{m2_per_kg: x}, &Distance{m: y}), VolumePerMass{m3_per_kg: x*y});
1353 assert_eq!(div_check(&AreaPerMass{m2_per_kg: x}, &InverseDistance{per_m: y}), VolumePerMass{m3_per_kg: x/y});
1354 assert_eq!(div_check(&AreaPerMass{m2_per_kg: x}, &InverseMass{per_kg: y}), Area{m2: x/y});
1355 assert_eq!(mul_check(&AreaPerMass{m2_per_kg: x}, &Mass{kg: y}), Area{m2: x*y});
1356 assert_eq!(div_check(&AreaPerMass{m2_per_kg: x}, &Area{m2: y}), InverseMass{per_kg: x/y});
1357 assert_eq!(mul_check(&AreaPerMass{m2_per_kg: x}, &InverseArea{per_m2: y}), InverseMass{per_kg: x*y});
1358 assert_eq!(div_check(&AreaPerMass{m2_per_kg: x}, &Acceleration{mps2: y}), InversePressure{per_Pa: x/y});
1359 assert_eq!(mul_check(&AreaPerMass{m2_per_kg: x}, &Density{kgpm3: y}), InverseDistance{per_m: x*y});
1360 assert_eq!(mul_check(&AreaPerMass{m2_per_kg: x}, &InverseAcceleration{s2pm: y}), InversePressure{per_Pa: x*y});
1361 assert_eq!(div_check(&AreaPerMass{m2_per_kg: x}, &InversePressure{per_Pa: y}), Acceleration{mps2: x/y});
1362 assert_eq!(mul_check(&AreaPerMass{m2_per_kg: x}, &Pressure{Pa: y}), Acceleration{mps2: x*y});
1363 assert_eq!(div_check(&AreaPerMass{m2_per_kg: x}, &VolumePerMass{m3_per_kg: y}), InverseDistance{per_m: x/y});
1364 assert_eq!(div_check(&Density{kgpm3: x}, &InverseDistance{per_m: y}), AreaDensity{kgpm2: x/y});
1365 assert_eq!(mul_check(&Density{kgpm3: x}, &InverseMass{per_kg: y}), InverseVolume{per_m3: x*y});
1366 assert_eq!(div_check(&Density{kgpm3: x}, &Mass{kg: y}), InverseVolume{per_m3: x/y});
1367 assert_eq!(mul_check(&Density{kgpm3: x}, &MolarVolume{m3_per_mol: y}), MolarMass{kgpmol: x*y});
1368 assert_eq!(div_check(&Density{kgpm3: x}, &InverseVolume{per_m3: y}), Mass{kg: x/y});
1369 assert_eq!(div_check(&Density{kgpm3: x}, &AreaDensity{kgpm2: y}), InverseDistance{per_m: x/y});
1370 assert_eq!(mul_check(&Density{kgpm3: x}, &AreaPerMass{m2_per_kg: y}), InverseDistance{per_m: x*y});
1371 assert_eq!(div_check(&Density{kgpm3: x}, &InverseAbsorbedDose{per_Gy: y}), Pressure{Pa: x/y});
1372 assert_eq!(div_check(&Density{kgpm3: x}, &InverseDoseEquivalent{per_Sv: y}), Pressure{Pa: x/y});
1373 assert_eq!(mul_check(&Energy{J: x}, &InverseCurrent{per_A: y}), MagneticFlux{Wb: x*y});
1374 assert_eq!(mul_check(&Energy{J: x}, &InverseDistance{per_m: y}), Force{N: x*y});
1375 assert_eq!(mul_check(&Energy{J: x}, &InverseCharge{per_C: y}), Voltage{V: x*y});
1376 assert_eq!(mul_check(&Energy{J: x}, &InverseMagneticFlux{per_Wb: y}), Current{A: x*y});
1377 assert_eq!(mul_check(&Energy{J: x}, &InverseVoltage{per_V: y}), Charge{C: x*y});
1378 assert_eq!(mul_check(&Energy{J: x}, &InverseVolume{per_m3: y}), Pressure{Pa: x*y});
1379 assert_eq!(mul_check(&Energy{J: x}, &InverseForce{per_N: y}), Distance{m: x*y});
1380 assert_eq!(mul_check(&Energy{J: x}, &InverseMomentum{s_per_kgm: y}), Velocity{mps: x*y});
1381 assert_eq!(mul_check(&Energy{J: x}, &InversePower{per_W: y}), Time{s: x*y});
1382 assert_eq!(mul_check(&Energy{J: x}, &InversePressure{per_Pa: y}), Volume{m3: x*y});
1383 assert_eq!(mul_check(&Energy{J: x}, &TimePerDistance{spm: y}), Momentum{kgmps: x*y});
1384 assert_eq!(mul_check(&Energy{J: x}, &InverseAbsorbedDose{per_Gy: y}), Mass{kg: x*y});
1385 assert_eq!(mul_check(&Energy{J: x}, &InverseDoseEquivalent{per_Sv: y}), Mass{kg: x*y});
1386 assert_eq!(div_check(&Force{N: x}, &InverseDistance{per_m: y}), Energy{J: x/y});
1387 assert_eq!(mul_check(&Force{N: x}, &InverseMass{per_kg: y}), Acceleration{mps2: x*y});
1388 assert_eq!(mul_check(&Force{N: x}, &InverseArea{per_m2: y}), Pressure{Pa: x*y});
1389 assert_eq!(div_check(&Force{N: x}, &Energy{J: y}), InverseDistance{per_m: x/y});
1390 assert_eq!(div_check(&Force{N: x}, &Torque{Nm: y}), InverseDistance{per_m: x/y});
1391 assert_eq!(mul_check(&Force{N: x}, &InverseAcceleration{s2pm: y}), Mass{kg: x*y});
1392 assert_eq!(mul_check(&Force{N: x}, &InverseEnergy{per_J: y}), InverseDistance{per_m: x*y});
1393 assert_eq!(mul_check(&Force{N: x}, &InverseTorque{per_Nm: y}), InverseDistance{per_m: x*y});
1394 assert_eq!(mul_check(&Force{N: x}, &InverseMomentum{s_per_kgm: y}), Frequency{Hz: x*y});
1395 assert_eq!(mul_check(&Force{N: x}, &InversePower{per_W: y}), TimePerDistance{spm: x*y});
1396 assert_eq!(mul_check(&Force{N: x}, &InversePressure{per_Pa: y}), Area{m2: x*y});
1397 assert_eq!(div_check(&Force{N: x}, &Power{W: y}), TimePerDistance{spm: x/y});
1398 assert_eq!(div_check(&Force{N: x}, &TimePerDistance{spm: y}), Power{W: x/y});
1399 assert_eq!(div_check(&Frequency{Hz: x}, &Current{A: y}), InverseCharge{per_C: x/y});
1400 assert_eq!(div_check(&Frequency{Hz: x}, &InverseAmount{per_mol: y}), CatalyticActivity{molps: x/y});
1401 assert_eq!(mul_check(&Frequency{Hz: x}, &InverseCurrent{per_A: y}), InverseCharge{per_C: x*y});
1402 assert_eq!(div_check(&Frequency{Hz: x}, &InverseDistance{per_m: y}), Velocity{mps: x/y});
1403 assert_eq!(div_check(&Frequency{Hz: x}, &CatalyticActivity{molps: y}), InverseAmount{per_mol: x/y});
1404 assert_eq!(mul_check(&Frequency{Hz: x}, &InverseCatalyticActivity{s_per_mol: y}), InverseAmount{per_mol: x*y});
1405 assert_eq!(mul_check(&Frequency{Hz: x}, &Conductance{S: y}), InverseInductance{per_H: x*y});
1406 assert_eq!(div_check(&Frequency{Hz: x}, &Conductance{S: y}), Elastance{per_F: x/y});
1407 assert_eq!(div_check(&Frequency{Hz: x}, &Elastance{per_F: y}), Conductance{S: x/y});
1408 assert_eq!(div_check(&Frequency{Hz: x}, &InverseCharge{per_C: y}), Current{A: x/y});
1409 assert_eq!(div_check(&Frequency{Hz: x}, &InverseInductance{per_H: y}), Resistance{Ohm: x/y});
1410 assert_eq!(div_check(&Frequency{Hz: x}, &InverseMagneticFlux{per_Wb: y}), Voltage{V: x/y});
1411 assert_eq!(mul_check(&Frequency{Hz: x}, &InverseVoltage{per_V: y}), InverseMagneticFlux{per_Wb: x*y});
1412 assert_eq!(mul_check(&Frequency{Hz: x}, &Resistance{Ohm: y}), Elastance{per_F: x*y});
1413 assert_eq!(div_check(&Frequency{Hz: x}, &Resistance{Ohm: y}), InverseInductance{per_H: x/y});
1414 assert_eq!(div_check(&Frequency{Hz: x}, &Voltage{V: y}), InverseMagneticFlux{per_Wb: x/y});
1415 assert_eq!(div_check(&Frequency{Hz: x}, &InverseAngle{per_rad: y}), AngularVelocity{radps: x/y});
1416 assert_eq!(div_check(&Frequency{Hz: x}, &Acceleration{mps2: y}), TimePerDistance{spm: x/y});
1417 assert_eq!(div_check(&Frequency{Hz: x}, &AngularAcceleration{radps2: y}), InverseAngularVelocity{s_per_rad: x/y});
1418 assert_eq!(div_check(&Frequency{Hz: x}, &AngularVelocity{radps: y}), InverseAngle{per_rad: x/y});
1419 assert_eq!(div_check(&Frequency{Hz: x}, &Force{N: y}), InverseMomentum{s_per_kgm: x/y});
1420 assert_eq!(mul_check(&Frequency{Hz: x}, &InverseAcceleration{s2pm: y}), TimePerDistance{spm: x*y});
1421 assert_eq!(mul_check(&Frequency{Hz: x}, &InverseAngularAcceleration{s2prad: y}), InverseAngularVelocity{s_per_rad: x*y});
1422 assert_eq!(mul_check(&Frequency{Hz: x}, &InverseAngularVelocity{s_per_rad: y}), InverseAngle{per_rad: x*y});
1423 assert_eq!(div_check(&Frequency{Hz: x}, &InverseAngularVelocity{s_per_rad: y}), AngularAcceleration{radps2: x/y});
1424 assert_eq!(div_check(&Frequency{Hz: x}, &InverseEnergy{per_J: y}), Power{W: x/y});
1425 assert_eq!(div_check(&Frequency{Hz: x}, &InverseTorque{per_Nm: y}), Power{W: x/y});
1426 assert_eq!(mul_check(&Frequency{Hz: x}, &InverseForce{per_N: y}), InverseMomentum{s_per_kgm: x*y});
1427 assert_eq!(div_check(&Frequency{Hz: x}, &InverseMomentum{s_per_kgm: y}), Force{N: x/y});
1428 assert_eq!(mul_check(&Frequency{Hz: x}, &InversePower{per_W: y}), InverseEnergy{per_J: x*y});
1429 assert_eq!(div_check(&Frequency{Hz: x}, &Power{W: y}), InverseEnergy{per_J: x/y});
1430 assert_eq!(mul_check(&Frequency{Hz: x}, &TimePerDistance{spm: y}), InverseDistance{per_m: x*y});
1431 assert_eq!(div_check(&Frequency{Hz: x}, &TimePerDistance{spm: y}), Acceleration{mps2: x/y});
1432 assert_eq!(div_check(&Frequency{Hz: x}, &Velocity{mps: y}), InverseDistance{per_m: x/y});
1433 assert_eq!(mul_check(&InverseAcceleration{s2pm: x}, &InverseMass{per_kg: y}), InverseForce{per_N: x*y});
1434 assert_eq!(div_check(&InverseAcceleration{s2pm: x}, &Mass{kg: y}), InverseForce{per_N: x/y});
1435 assert_eq!(div_check(&InverseAcceleration{s2pm: x}, &Time{s: y}), TimePerDistance{spm: x/y});
1436 assert_eq!(div_check(&InverseAcceleration{s2pm: x}, &AreaDensity{kgpm2: y}), InversePressure{per_Pa: x/y});
1437 assert_eq!(mul_check(&InverseAcceleration{s2pm: x}, &AreaPerMass{m2_per_kg: y}), InversePressure{per_Pa: x*y});
1438 assert_eq!(mul_check(&InverseAcceleration{s2pm: x}, &Force{N: y}), Mass{kg: x*y});
1439 assert_eq!(mul_check(&InverseAcceleration{s2pm: x}, &Frequency{Hz: y}), TimePerDistance{spm: x*y});
1440 assert_eq!(div_check(&InverseAcceleration{s2pm: x}, &InverseForce{per_N: y}), Mass{kg: x/y});
1441 assert_eq!(mul_check(&InverseAcceleration{s2pm: x}, &InverseMomentum{s_per_kgm: y}), InversePower{per_W: x*y});
1442 assert_eq!(div_check(&InverseAcceleration{s2pm: x}, &InversePower{per_W: y}), Momentum{kgmps: x/y});
1443 assert_eq!(div_check(&InverseAcceleration{s2pm: x}, &InversePressure{per_Pa: y}), AreaDensity{kgpm2: x/y});
1444 assert_eq!(div_check(&InverseAcceleration{s2pm: x}, &Momentum{kgmps: y}), InversePower{per_W: x/y});
1445 assert_eq!(mul_check(&InverseAcceleration{s2pm: x}, &Power{W: y}), Momentum{kgmps: x*y});
1446 assert_eq!(mul_check(&InverseAcceleration{s2pm: x}, &Pressure{Pa: y}), AreaDensity{kgpm2: x*y});
1447 assert_eq!(div_check(&InverseAcceleration{s2pm: x}, &TimePerDistance{spm: y}), Time{s: x/y});
1448 assert_eq!(mul_check(&InverseAcceleration{s2pm: x}, &Velocity{mps: y}), Time{s: x*y});
1449 assert_eq!(div_check(&InverseAcceleration{s2pm: x}, &InverseAbsorbedDose{per_Gy: y}), Distance{m: x/y});
1450 assert_eq!(div_check(&InverseAcceleration{s2pm: x}, &InverseDoseEquivalent{per_Sv: y}), Distance{m: x/y});
1451 assert_eq!(div_check(&InverseAngularAcceleration{s2prad: x}, &Time{s: y}), InverseAngularVelocity{s_per_rad: x/y});
1452 assert_eq!(mul_check(&InverseAngularAcceleration{s2prad: x}, &AngularVelocity{radps: y}), Time{s: x*y});
1453 assert_eq!(mul_check(&InverseAngularAcceleration{s2prad: x}, &Frequency{Hz: y}), InverseAngularVelocity{s_per_rad: x*y});
1454 assert_eq!(div_check(&InverseAngularAcceleration{s2prad: x}, &InverseAngularVelocity{s_per_rad: y}), Time{s: x/y});
1455 assert_eq!(div_check(&InverseAngularMomentum{s_per_kgm2rad: x}, &InverseMomentOfInertia{per_kgm2: y}), InverseAngularVelocity{s_per_rad: x/y});
1456 assert_eq!(mul_check(&InverseAngularMomentum{s_per_kgm2rad: x}, &MomentOfInertia{kgm2: y}), InverseAngularVelocity{s_per_rad: x*y});
1457 assert_eq!(mul_check(&InverseAngularVelocity{s_per_rad: x}, &Time{s: y}), InverseAngularAcceleration{s2prad: x*y});
1458 assert_eq!(div_check(&InverseAngularVelocity{s_per_rad: x}, &Time{s: y}), InverseAngle{per_rad: x/y});
1459 assert_eq!(mul_check(&InverseAngularVelocity{s_per_rad: x}, &Angle{rad: y}), Time{s: x*y});
1460 assert_eq!(div_check(&InverseAngularVelocity{s_per_rad: x}, &InverseAngle{per_rad: y}), Time{s: x/y});
1461 assert_eq!(mul_check(&InverseAngularVelocity{s_per_rad: x}, &AngularAcceleration{radps2: y}), Frequency{Hz: x*y});
1462 assert_eq!(mul_check(&InverseAngularVelocity{s_per_rad: x}, &Frequency{Hz: y}), InverseAngle{per_rad: x*y});
1463 assert_eq!(div_check(&InverseAngularVelocity{s_per_rad: x}, &Frequency{Hz: y}), InverseAngularAcceleration{s2prad: x/y});
1464 assert_eq!(div_check(&InverseAngularVelocity{s_per_rad: x}, &InverseAngularAcceleration{s2prad: y}), Frequency{Hz: x/y});
1465 assert_eq!(mul_check(&InverseAngularVelocity{s_per_rad: x}, &InverseMomentOfInertia{per_kgm2: y}), InverseAngularMomentum{s_per_kgm2rad: x*y});
1466 assert_eq!(div_check(&InverseAngularVelocity{s_per_rad: x}, &MomentOfInertia{kgm2: y}), InverseAngularMomentum{s_per_kgm2rad: x/y});
1467 assert_eq!(mul_check(&InverseEnergy{per_J: x}, &Current{A: y}), InverseMagneticFlux{per_Wb: x*y});
1468 assert_eq!(mul_check(&InverseEnergy{per_J: x}, &Distance{m: y}), InverseForce{per_N: x*y});
1469 assert_eq!(div_check(&InverseEnergy{per_J: x}, &InverseCurrent{per_A: y}), InverseMagneticFlux{per_Wb: x/y});
1470 assert_eq!(div_check(&InverseEnergy{per_J: x}, &InverseDistance{per_m: y}), InverseForce{per_N: x/y});
1471 assert_eq!(mul_check(&InverseEnergy{per_J: x}, &Time{s: y}), InversePower{per_W: x*y});
1472 assert_eq!(mul_check(&InverseEnergy{per_J: x}, &Charge{C: y}), InverseVoltage{per_V: x*y});
1473 assert_eq!(div_check(&InverseEnergy{per_J: x}, &InverseCharge{per_C: y}), InverseVoltage{per_V: x/y});
1474 assert_eq!(div_check(&InverseEnergy{per_J: x}, &InverseMagneticFlux{per_Wb: y}), InverseCurrent{per_A: x/y});
1475 assert_eq!(div_check(&InverseEnergy{per_J: x}, &InverseVoltage{per_V: y}), InverseCharge{per_C: x/y});
1476 assert_eq!(mul_check(&InverseEnergy{per_J: x}, &MagneticFlux{Wb: y}), InverseCurrent{per_A: x*y});
1477 assert_eq!(mul_check(&InverseEnergy{per_J: x}, &Voltage{V: y}), InverseCharge{per_C: x*y});
1478 assert_eq!(div_check(&InverseEnergy{per_J: x}, &InverseVolume{per_m3: y}), InversePressure{per_Pa: x/y});
1479 assert_eq!(mul_check(&InverseEnergy{per_J: x}, &Volume{m3: y}), InversePressure{per_Pa: x*y});
1480 assert_eq!(mul_check(&InverseEnergy{per_J: x}, &Force{N: y}), InverseDistance{per_m: x*y});
1481 assert_eq!(div_check(&InverseEnergy{per_J: x}, &Frequency{Hz: y}), InversePower{per_W: x/y});
1482 assert_eq!(div_check(&InverseEnergy{per_J: x}, &InverseForce{per_N: y}), InverseDistance{per_m: x/y});
1483 assert_eq!(div_check(&InverseEnergy{per_J: x}, &InverseMomentum{s_per_kgm: y}), TimePerDistance{spm: x/y});
1484 assert_eq!(div_check(&InverseEnergy{per_J: x}, &InversePower{per_W: y}), Frequency{Hz: x/y});
1485 assert_eq!(div_check(&InverseEnergy{per_J: x}, &InversePressure{per_Pa: y}), InverseVolume{per_m3: x/y});
1486 assert_eq!(mul_check(&InverseEnergy{per_J: x}, &Momentum{kgmps: y}), TimePerDistance{spm: x*y});
1487 assert_eq!(mul_check(&InverseEnergy{per_J: x}, &Power{W: y}), Frequency{Hz: x*y});
1488 assert_eq!(mul_check(&InverseEnergy{per_J: x}, &Pressure{Pa: y}), InverseVolume{per_m3: x*y});
1489 assert_eq!(div_check(&InverseEnergy{per_J: x}, &TimePerDistance{spm: y}), InverseMomentum{s_per_kgm: x/y});
1490 assert_eq!(mul_check(&InverseEnergy{per_J: x}, &Velocity{mps: y}), InverseMomentum{s_per_kgm: x*y});
1491 assert_eq!(div_check(&InverseEnergy{per_J: x}, &InverseAbsorbedDose{per_Gy: y}), InverseMass{per_kg: x/y});
1492 assert_eq!(div_check(&InverseEnergy{per_J: x}, &InverseDoseEquivalent{per_Sv: y}), InverseMass{per_kg: x/y});
1493 assert_eq!(div_check(&InverseForce{per_N: x}, &Distance{m: y}), InverseEnergy{per_J: x/y});
1494 assert_eq!(mul_check(&InverseForce{per_N: x}, &InverseDistance{per_m: y}), InverseEnergy{per_J: x*y});
1495 assert_eq!(div_check(&InverseForce{per_N: x}, &InverseMass{per_kg: y}), InverseAcceleration{s2pm: x/y});
1496 assert_eq!(mul_check(&InverseForce{per_N: x}, &Mass{kg: y}), InverseAcceleration{s2pm: x*y});
1497 assert_eq!(div_check(&InverseForce{per_N: x}, &Time{s: y}), InverseMomentum{s_per_kgm: x/y});
1498 assert_eq!(mul_check(&InverseForce{per_N: x}, &Area{m2: y}), InversePressure{per_Pa: x*y});
1499 assert_eq!(div_check(&InverseForce{per_N: x}, &InverseArea{per_m2: y}), InversePressure{per_Pa: x/y});
1500 assert_eq!(mul_check(&InverseForce{per_N: x}, &Acceleration{mps2: y}), InverseMass{per_kg: x*y});
1501 assert_eq!(mul_check(&InverseForce{per_N: x}, &Energy{J: y}), Distance{m: x*y});
1502 assert_eq!(mul_check(&InverseForce{per_N: x}, &Torque{Nm: y}), Distance{m: x*y});
1503 assert_eq!(mul_check(&InverseForce{per_N: x}, &Frequency{Hz: y}), InverseMomentum{s_per_kgm: x*y});
1504 assert_eq!(div_check(&InverseForce{per_N: x}, &InverseAcceleration{s2pm: y}), InverseMass{per_kg: x/y});
1505 assert_eq!(div_check(&InverseForce{per_N: x}, &InverseEnergy{per_J: y}), Distance{m: x/y});
1506 assert_eq!(div_check(&InverseForce{per_N: x}, &InverseTorque{per_Nm: y}), Distance{m: x/y});
1507 assert_eq!(div_check(&InverseForce{per_N: x}, &InverseMomentum{s_per_kgm: y}), Time{s: x/y});
1508 assert_eq!(div_check(&InverseForce{per_N: x}, &InversePower{per_W: y}), Velocity{mps: x/y});
1509 assert_eq!(div_check(&InverseForce{per_N: x}, &InversePressure{per_Pa: y}), InverseArea{per_m2: x/y});
1510 assert_eq!(mul_check(&InverseForce{per_N: x}, &Momentum{kgmps: y}), Time{s: x*y});
1511 assert_eq!(mul_check(&InverseForce{per_N: x}, &Power{W: y}), Velocity{mps: x*y});
1512 assert_eq!(mul_check(&InverseForce{per_N: x}, &Pressure{Pa: y}), InverseArea{per_m2: x*y});
1513 assert_eq!(mul_check(&InverseForce{per_N: x}, &TimePerDistance{spm: y}), InversePower{per_W: x*y});
1514 assert_eq!(div_check(&InverseForce{per_N: x}, &Velocity{mps: y}), InversePower{per_W: x/y});
1515 assert_eq!(div_check(&InverseMomentOfInertia{per_kgm2: x}, &InverseMass{per_kg: y}), InverseArea{per_m2: x/y});
1516 assert_eq!(mul_check(&InverseMomentOfInertia{per_kgm2: x}, &Mass{kg: y}), InverseArea{per_m2: x*y});
1517 assert_eq!(mul_check(&InverseMomentOfInertia{per_kgm2: x}, &Area{m2: y}), InverseMass{per_kg: x*y});
1518 assert_eq!(div_check(&InverseMomentOfInertia{per_kgm2: x}, &InverseArea{per_m2: y}), InverseMass{per_kg: x/y});
1519 assert_eq!(mul_check(&InverseMomentOfInertia{per_kgm2: x}, &AngularMomentum{kgm2radps: y}), AngularVelocity{radps: x*y});
1520 assert_eq!(div_check(&InverseMomentOfInertia{per_kgm2: x}, &AngularVelocity{radps: y}), InverseAngularMomentum{s_per_kgm2rad: x/y});
1521 assert_eq!(div_check(&InverseMomentOfInertia{per_kgm2: x}, &InverseAngularMomentum{s_per_kgm2rad: y}), AngularVelocity{radps: x/y});
1522 assert_eq!(mul_check(&InverseMomentOfInertia{per_kgm2: x}, &InverseAngularVelocity{s_per_rad: y}), InverseAngularMomentum{s_per_kgm2rad: x*y});
1523 assert_eq!(div_check(&InverseMomentum{s_per_kgm: x}, &InverseMass{per_kg: y}), TimePerDistance{spm: x/y});
1524 assert_eq!(mul_check(&InverseMomentum{s_per_kgm: x}, &Mass{kg: y}), TimePerDistance{spm: x*y});
1525 assert_eq!(mul_check(&InverseMomentum{s_per_kgm: x}, &Time{s: y}), InverseForce{per_N: x*y});
1526 assert_eq!(div_check(&InverseMomentum{s_per_kgm: x}, &Acceleration{mps2: y}), InversePower{per_W: x/y});
1527 assert_eq!(mul_check(&InverseMomentum{s_per_kgm: x}, &Energy{J: y}), Velocity{mps: x*y});
1528 assert_eq!(mul_check(&InverseMomentum{s_per_kgm: x}, &Torque{Nm: y}), Velocity{mps: x*y});
1529 assert_eq!(mul_check(&InverseMomentum{s_per_kgm: x}, &Force{N: y}), Frequency{Hz: x*y});
1530 assert_eq!(div_check(&InverseMomentum{s_per_kgm: x}, &Frequency{Hz: y}), InverseForce{per_N: x/y});
1531 assert_eq!(mul_check(&InverseMomentum{s_per_kgm: x}, &InverseAcceleration{s2pm: y}), InversePower{per_W: x*y});
1532 assert_eq!(div_check(&InverseMomentum{s_per_kgm: x}, &InverseEnergy{per_J: y}), Velocity{mps: x/y});
1533 assert_eq!(div_check(&InverseMomentum{s_per_kgm: x}, &InverseTorque{per_Nm: y}), Velocity{mps: x/y});
1534 assert_eq!(div_check(&InverseMomentum{s_per_kgm: x}, &InverseForce{per_N: y}), Frequency{Hz: x/y});
1535 assert_eq!(div_check(&InverseMomentum{s_per_kgm: x}, &InversePower{per_W: y}), Acceleration{mps2: x/y});
1536 assert_eq!(mul_check(&InverseMomentum{s_per_kgm: x}, &Power{W: y}), Acceleration{mps2: x*y});
1537 assert_eq!(mul_check(&InverseMomentum{s_per_kgm: x}, &TimePerDistance{spm: y}), InverseEnergy{per_J: x*y});
1538 assert_eq!(div_check(&InverseMomentum{s_per_kgm: x}, &TimePerDistance{spm: y}), InverseMass{per_kg: x/y});
1539 assert_eq!(mul_check(&InverseMomentum{s_per_kgm: x}, &Velocity{mps: y}), InverseMass{per_kg: x*y});
1540 assert_eq!(div_check(&InverseMomentum{s_per_kgm: x}, &Velocity{mps: y}), InverseEnergy{per_J: x/y});
1541 assert_eq!(mul_check(&InversePower{per_W: x}, &Current{A: y}), InverseVoltage{per_V: x*y});
1542 assert_eq!(div_check(&InversePower{per_W: x}, &InverseCurrent{per_A: y}), InverseVoltage{per_V: x/y});
1543 assert_eq!(div_check(&InversePower{per_W: x}, &Time{s: y}), InverseEnergy{per_J: x/y});
1544 assert_eq!(div_check(&InversePower{per_W: x}, &InverseVoltage{per_V: y}), InverseCurrent{per_A: x/y});
1545 assert_eq!(mul_check(&InversePower{per_W: x}, &Voltage{V: y}), InverseCurrent{per_A: x*y});
1546 assert_eq!(mul_check(&InversePower{per_W: x}, &Acceleration{mps2: y}), InverseMomentum{s_per_kgm: x*y});
1547 assert_eq!(mul_check(&InversePower{per_W: x}, &Energy{J: y}), Time{s: x*y});
1548 assert_eq!(mul_check(&InversePower{per_W: x}, &Torque{Nm: y}), Time{s: x*y});
1549 assert_eq!(mul_check(&InversePower{per_W: x}, &Force{N: y}), TimePerDistance{spm: x*y});
1550 assert_eq!(mul_check(&InversePower{per_W: x}, &Frequency{Hz: y}), InverseEnergy{per_J: x*y});
1551 assert_eq!(div_check(&InversePower{per_W: x}, &InverseAcceleration{s2pm: y}), InverseMomentum{s_per_kgm: x/y});
1552 assert_eq!(div_check(&InversePower{per_W: x}, &InverseEnergy{per_J: y}), Time{s: x/y});
1553 assert_eq!(div_check(&InversePower{per_W: x}, &InverseTorque{per_Nm: y}), Time{s: x/y});
1554 assert_eq!(div_check(&InversePower{per_W: x}, &InverseForce{per_N: y}), TimePerDistance{spm: x/y});
1555 assert_eq!(div_check(&InversePower{per_W: x}, &InverseMomentum{s_per_kgm: y}), InverseAcceleration{s2pm: x/y});
1556 assert_eq!(mul_check(&InversePower{per_W: x}, &Momentum{kgmps: y}), InverseAcceleration{s2pm: x*y});
1557 assert_eq!(div_check(&InversePower{per_W: x}, &TimePerDistance{spm: y}), InverseForce{per_N: x/y});
1558 assert_eq!(mul_check(&InversePower{per_W: x}, &Velocity{mps: y}), InverseForce{per_N: x*y});
1559 assert_eq!(div_check(&InversePressure{per_Pa: x}, &Area{m2: y}), InverseForce{per_N: x/y});
1560 assert_eq!(mul_check(&InversePressure{per_Pa: x}, &InverseArea{per_m2: y}), InverseForce{per_N: x*y});
1561 assert_eq!(mul_check(&InversePressure{per_Pa: x}, &InverseVolume{per_m3: y}), InverseEnergy{per_J: x*y});
1562 assert_eq!(div_check(&InversePressure{per_Pa: x}, &Volume{m3: y}), InverseEnergy{per_J: x/y});
1563 assert_eq!(mul_check(&InversePressure{per_Pa: x}, &Acceleration{mps2: y}), AreaPerMass{m2_per_kg: x*y});
1564 assert_eq!(mul_check(&InversePressure{per_Pa: x}, &AreaDensity{kgpm2: y}), InverseAcceleration{s2pm: x*y});
1565 assert_eq!(div_check(&InversePressure{per_Pa: x}, &AreaPerMass{m2_per_kg: y}), InverseAcceleration{s2pm: x/y});
1566 assert_eq!(mul_check(&InversePressure{per_Pa: x}, &Energy{J: y}), Volume{m3: x*y});
1567 assert_eq!(mul_check(&InversePressure{per_Pa: x}, &Torque{Nm: y}), Volume{m3: x*y});
1568 assert_eq!(mul_check(&InversePressure{per_Pa: x}, &Force{N: y}), Area{m2: x*y});
1569 assert_eq!(div_check(&InversePressure{per_Pa: x}, &InverseAcceleration{s2pm: y}), AreaPerMass{m2_per_kg: x/y});
1570 assert_eq!(div_check(&InversePressure{per_Pa: x}, &InverseEnergy{per_J: y}), Volume{m3: x/y});
1571 assert_eq!(div_check(&InversePressure{per_Pa: x}, &InverseTorque{per_Nm: y}), Volume{m3: x/y});
1572 assert_eq!(div_check(&InversePressure{per_Pa: x}, &InverseForce{per_N: y}), Area{m2: x/y});
1573 assert_eq!(div_check(&InversePressure{per_Pa: x}, &InverseAbsorbedDose{per_Gy: y}), VolumePerMass{m3_per_kg: x/y});
1574 assert_eq!(div_check(&InversePressure{per_Pa: x}, &InverseDoseEquivalent{per_Sv: y}), VolumePerMass{m3_per_kg: x/y});
1575 assert_eq!(mul_check(&InverseTorque{per_Nm: x}, &Current{A: y}), InverseMagneticFlux{per_Wb: x*y});
1576 assert_eq!(mul_check(&InverseTorque{per_Nm: x}, &Distance{m: y}), InverseForce{per_N: x*y});
1577 assert_eq!(div_check(&InverseTorque{per_Nm: x}, &InverseCurrent{per_A: y}), InverseMagneticFlux{per_Wb: x/y});
1578 assert_eq!(div_check(&InverseTorque{per_Nm: x}, &InverseDistance{per_m: y}), InverseForce{per_N: x/y});
1579 assert_eq!(mul_check(&InverseTorque{per_Nm: x}, &Time{s: y}), InversePower{per_W: x*y});
1580 assert_eq!(mul_check(&InverseTorque{per_Nm: x}, &Charge{C: y}), InverseVoltage{per_V: x*y});
1581 assert_eq!(div_check(&InverseTorque{per_Nm: x}, &InverseCharge{per_C: y}), InverseVoltage{per_V: x/y});
1582 assert_eq!(div_check(&InverseTorque{per_Nm: x}, &InverseMagneticFlux{per_Wb: y}), InverseCurrent{per_A: x/y});
1583 assert_eq!(div_check(&InverseTorque{per_Nm: x}, &InverseVoltage{per_V: y}), InverseCharge{per_C: x/y});
1584 assert_eq!(mul_check(&InverseTorque{per_Nm: x}, &MagneticFlux{Wb: y}), InverseCurrent{per_A: x*y});
1585 assert_eq!(mul_check(&InverseTorque{per_Nm: x}, &Voltage{V: y}), InverseCharge{per_C: x*y});
1586 assert_eq!(div_check(&InverseTorque{per_Nm: x}, &InverseVolume{per_m3: y}), InversePressure{per_Pa: x/y});
1587 assert_eq!(mul_check(&InverseTorque{per_Nm: x}, &Volume{m3: y}), InversePressure{per_Pa: x*y});
1588 assert_eq!(mul_check(&InverseTorque{per_Nm: x}, &Force{N: y}), InverseDistance{per_m: x*y});
1589 assert_eq!(div_check(&InverseTorque{per_Nm: x}, &Frequency{Hz: y}), InversePower{per_W: x/y});
1590 assert_eq!(div_check(&InverseTorque{per_Nm: x}, &InverseForce{per_N: y}), InverseDistance{per_m: x/y});
1591 assert_eq!(div_check(&InverseTorque{per_Nm: x}, &InverseMomentum{s_per_kgm: y}), TimePerDistance{spm: x/y});
1592 assert_eq!(div_check(&InverseTorque{per_Nm: x}, &InversePower{per_W: y}), Frequency{Hz: x/y});
1593 assert_eq!(div_check(&InverseTorque{per_Nm: x}, &InversePressure{per_Pa: y}), InverseVolume{per_m3: x/y});
1594 assert_eq!(mul_check(&InverseTorque{per_Nm: x}, &Momentum{kgmps: y}), TimePerDistance{spm: x*y});
1595 assert_eq!(mul_check(&InverseTorque{per_Nm: x}, &Power{W: y}), Frequency{Hz: x*y});
1596 assert_eq!(mul_check(&InverseTorque{per_Nm: x}, &Pressure{Pa: y}), InverseVolume{per_m3: x*y});
1597 assert_eq!(div_check(&InverseTorque{per_Nm: x}, &TimePerDistance{spm: y}), InverseMomentum{s_per_kgm: x/y});
1598 assert_eq!(mul_check(&InverseTorque{per_Nm: x}, &Velocity{mps: y}), InverseMomentum{s_per_kgm: x*y});
1599 assert_eq!(div_check(&InverseTorque{per_Nm: x}, &InverseAbsorbedDose{per_Gy: y}), InverseMass{per_kg: x/y});
1600 assert_eq!(div_check(&InverseTorque{per_Nm: x}, &InverseDoseEquivalent{per_Sv: y}), InverseMass{per_kg: x/y});
1601 assert_eq!(mul_check(&MomentOfInertia{kgm2: x}, &InverseMass{per_kg: y}), Area{m2: x*y});
1602 assert_eq!(mul_check(&MomentOfInertia{kgm2: x}, &InverseArea{per_m2: y}), Mass{kg: x*y});
1603 assert_eq!(div_check(&MomentOfInertia{kgm2: x}, &AngularMomentum{kgm2radps: y}), InverseAngularVelocity{s_per_rad: x/y});
1604 assert_eq!(mul_check(&MomentOfInertia{kgm2: x}, &InverseAngularMomentum{s_per_kgm2rad: y}), InverseAngularVelocity{s_per_rad: x*y});
1605 assert_eq!(div_check(&MomentOfInertia{kgm2: x}, &InverseAngularVelocity{s_per_rad: y}), AngularMomentum{kgm2radps: x/y});
1606 assert_eq!(mul_check(&Momentum{kgmps: x}, &InverseMass{per_kg: y}), Velocity{mps: x*y});
1607 assert_eq!(div_check(&Momentum{kgmps: x}, &Energy{J: y}), TimePerDistance{spm: x/y});
1608 assert_eq!(div_check(&Momentum{kgmps: x}, &Torque{Nm: y}), TimePerDistance{spm: x/y});
1609 assert_eq!(div_check(&Momentum{kgmps: x}, &InverseAcceleration{s2pm: y}), Power{W: x/y});
1610 assert_eq!(mul_check(&Momentum{kgmps: x}, &InverseEnergy{per_J: y}), TimePerDistance{spm: x*y});
1611 assert_eq!(mul_check(&Momentum{kgmps: x}, &InverseTorque{per_Nm: y}), TimePerDistance{spm: x*y});
1612 assert_eq!(mul_check(&Momentum{kgmps: x}, &InverseForce{per_N: y}), Time{s: x*y});
1613 assert_eq!(mul_check(&Momentum{kgmps: x}, &InversePower{per_W: y}), InverseAcceleration{s2pm: x*y});
1614 assert_eq!(div_check(&Momentum{kgmps: x}, &Power{W: y}), InverseAcceleration{s2pm: x/y});
1615 assert_eq!(mul_check(&Momentum{kgmps: x}, &TimePerDistance{spm: y}), Mass{kg: x*y});
1616 assert_eq!(div_check(&Momentum{kgmps: x}, &TimePerDistance{spm: y}), Energy{J: x/y});
1617 assert_eq!(mul_check(&Power{W: x}, &InverseCurrent{per_A: y}), Voltage{V: x*y});
1618 assert_eq!(mul_check(&Power{W: x}, &InverseVoltage{per_V: y}), Current{A: x*y});
1619 assert_eq!(mul_check(&Power{W: x}, &InverseAcceleration{s2pm: y}), Momentum{kgmps: x*y});
1620 assert_eq!(mul_check(&Power{W: x}, &InverseEnergy{per_J: y}), Frequency{Hz: x*y});
1621 assert_eq!(mul_check(&Power{W: x}, &InverseTorque{per_Nm: y}), Frequency{Hz: x*y});
1622 assert_eq!(mul_check(&Power{W: x}, &InverseForce{per_N: y}), Velocity{mps: x*y});
1623 assert_eq!(mul_check(&Power{W: x}, &InverseMomentum{s_per_kgm: y}), Acceleration{mps2: x*y});
1624 assert_eq!(mul_check(&Power{W: x}, &TimePerDistance{spm: y}), Force{N: x*y});
1625 assert_eq!(div_check(&Pressure{Pa: x}, &InverseArea{per_m2: y}), Force{N: x/y});
1626 assert_eq!(div_check(&Pressure{Pa: x}, &InverseVolume{per_m3: y}), Energy{J: x/y});
1627 assert_eq!(mul_check(&Pressure{Pa: x}, &AreaPerMass{m2_per_kg: y}), Acceleration{mps2: x*y});
1628 assert_eq!(div_check(&Pressure{Pa: x}, &Energy{J: y}), InverseVolume{per_m3: x/y});
1629 assert_eq!(div_check(&Pressure{Pa: x}, &Torque{Nm: y}), InverseVolume{per_m3: x/y});
1630 assert_eq!(div_check(&Pressure{Pa: x}, &Force{N: y}), InverseArea{per_m2: x/y});
1631 assert_eq!(mul_check(&Pressure{Pa: x}, &InverseAcceleration{s2pm: y}), AreaDensity{kgpm2: x*y});
1632 assert_eq!(mul_check(&Pressure{Pa: x}, &InverseEnergy{per_J: y}), InverseVolume{per_m3: x*y});
1633 assert_eq!(mul_check(&Pressure{Pa: x}, &InverseTorque{per_Nm: y}), InverseVolume{per_m3: x*y});
1634 assert_eq!(mul_check(&Pressure{Pa: x}, &InverseForce{per_N: y}), InverseArea{per_m2: x*y});
1635 assert_eq!(mul_check(&Pressure{Pa: x}, &InverseAbsorbedDose{per_Gy: y}), Density{kgpm3: x*y});
1636 assert_eq!(mul_check(&Pressure{Pa: x}, &InverseDoseEquivalent{per_Sv: y}), Density{kgpm3: x*y});
1637 assert_eq!(mul_check(&TimePerDistance{spm: x}, &Distance{m: y}), Time{s: x*y});
1638 assert_eq!(div_check(&TimePerDistance{spm: x}, &InverseDistance{per_m: y}), Time{s: x/y});
1639 assert_eq!(mul_check(&TimePerDistance{spm: x}, &InverseMass{per_kg: y}), InverseMomentum{s_per_kgm: x*y});
1640 assert_eq!(div_check(&TimePerDistance{spm: x}, &Mass{kg: y}), InverseMomentum{s_per_kgm: x/y});
1641 assert_eq!(mul_check(&TimePerDistance{spm: x}, &Time{s: y}), InverseAcceleration{s2pm: x*y});
1642 assert_eq!(div_check(&TimePerDistance{spm: x}, &Time{s: y}), InverseDistance{per_m: x/y});
1643 assert_eq!(mul_check(&TimePerDistance{spm: x}, &Acceleration{mps2: y}), Frequency{Hz: x*y});
1644 assert_eq!(mul_check(&TimePerDistance{spm: x}, &Energy{J: y}), Momentum{kgmps: x*y});
1645 assert_eq!(mul_check(&TimePerDistance{spm: x}, &Torque{Nm: y}), Momentum{kgmps: x*y});
1646 assert_eq!(div_check(&TimePerDistance{spm: x}, &Force{N: y}), InversePower{per_W: x/y});
1647 assert_eq!(mul_check(&TimePerDistance{spm: x}, &Frequency{Hz: y}), InverseDistance{per_m: x*y});
1648 assert_eq!(div_check(&TimePerDistance{spm: x}, &Frequency{Hz: y}), InverseAcceleration{s2pm: x/y});
1649 assert_eq!(div_check(&TimePerDistance{spm: x}, &InverseAcceleration{s2pm: y}), Frequency{Hz: x/y});
1650 assert_eq!(div_check(&TimePerDistance{spm: x}, &InverseEnergy{per_J: y}), Momentum{kgmps: x/y});
1651 assert_eq!(div_check(&TimePerDistance{spm: x}, &InverseTorque{per_Nm: y}), Momentum{kgmps: x/y});
1652 assert_eq!(mul_check(&TimePerDistance{spm: x}, &InverseForce{per_N: y}), InversePower{per_W: x*y});
1653 assert_eq!(mul_check(&TimePerDistance{spm: x}, &InverseMomentum{s_per_kgm: y}), InverseEnergy{per_J: x*y});
1654 assert_eq!(div_check(&TimePerDistance{spm: x}, &InverseMomentum{s_per_kgm: y}), Mass{kg: x/y});
1655 assert_eq!(div_check(&TimePerDistance{spm: x}, &InversePower{per_W: y}), Force{N: x/y});
1656 assert_eq!(mul_check(&TimePerDistance{spm: x}, &Momentum{kgmps: y}), Mass{kg: x*y});
1657 assert_eq!(div_check(&TimePerDistance{spm: x}, &Momentum{kgmps: y}), InverseEnergy{per_J: x/y});
1658 assert_eq!(mul_check(&TimePerDistance{spm: x}, &Power{W: y}), Force{N: x*y});
1659 assert_eq!(div_check(&TimePerDistance{spm: x}, &InverseAbsorbedDose{per_Gy: y}), Velocity{mps: x/y});
1660 assert_eq!(div_check(&TimePerDistance{spm: x}, &InverseDoseEquivalent{per_Sv: y}), Velocity{mps: x/y});
1661 assert_eq!(mul_check(&Torque{Nm: x}, &InverseCurrent{per_A: y}), MagneticFlux{Wb: x*y});
1662 assert_eq!(mul_check(&Torque{Nm: x}, &InverseDistance{per_m: y}), Force{N: x*y});
1663 assert_eq!(mul_check(&Torque{Nm: x}, &InverseCharge{per_C: y}), Voltage{V: x*y});
1664 assert_eq!(mul_check(&Torque{Nm: x}, &InverseMagneticFlux{per_Wb: y}), Current{A: x*y});
1665 assert_eq!(mul_check(&Torque{Nm: x}, &InverseVoltage{per_V: y}), Charge{C: x*y});
1666 assert_eq!(mul_check(&Torque{Nm: x}, &InverseVolume{per_m3: y}), Pressure{Pa: x*y});
1667 assert_eq!(mul_check(&Torque{Nm: x}, &InverseForce{per_N: y}), Distance{m: x*y});
1668 assert_eq!(mul_check(&Torque{Nm: x}, &InverseMomentum{s_per_kgm: y}), Velocity{mps: x*y});
1669 assert_eq!(mul_check(&Torque{Nm: x}, &InversePower{per_W: y}), Time{s: x*y});
1670 assert_eq!(mul_check(&Torque{Nm: x}, &InversePressure{per_Pa: y}), Volume{m3: x*y});
1671 assert_eq!(mul_check(&Torque{Nm: x}, &TimePerDistance{spm: y}), Momentum{kgmps: x*y});
1672 assert_eq!(mul_check(&Torque{Nm: x}, &InverseAbsorbedDose{per_Gy: y}), Mass{kg: x*y});
1673 assert_eq!(mul_check(&Torque{Nm: x}, &InverseDoseEquivalent{per_Sv: y}), Mass{kg: x*y});
1674 assert_eq!(mul_check(&Velocity{mps: x}, &InverseDistance{per_m: y}), Frequency{Hz: x*y});
1675 assert_eq!(div_check(&Velocity{mps: x}, &InverseMass{per_kg: y}), Momentum{kgmps: x/y});
1676 assert_eq!(div_check(&Velocity{mps: x}, &Energy{J: y}), InverseMomentum{s_per_kgm: x/y});
1677 assert_eq!(div_check(&Velocity{mps: x}, &Torque{Nm: y}), InverseMomentum{s_per_kgm: x/y});
1678 assert_eq!(mul_check(&Velocity{mps: x}, &InverseAcceleration{s2pm: y}), Time{s: x*y});
1679 assert_eq!(mul_check(&Velocity{mps: x}, &InverseEnergy{per_J: y}), InverseMomentum{s_per_kgm: x*y});
1680 assert_eq!(mul_check(&Velocity{mps: x}, &InverseTorque{per_Nm: y}), InverseMomentum{s_per_kgm: x*y});
1681 assert_eq!(div_check(&Velocity{mps: x}, &InverseForce{per_N: y}), Power{W: x/y});
1682 assert_eq!(mul_check(&Velocity{mps: x}, &InverseMomentum{s_per_kgm: y}), InverseMass{per_kg: x*y});
1683 assert_eq!(div_check(&Velocity{mps: x}, &InverseMomentum{s_per_kgm: y}), Energy{J: x/y});
1684 assert_eq!(mul_check(&Velocity{mps: x}, &InversePower{per_W: y}), InverseForce{per_N: x*y});
1685 assert_eq!(div_check(&Velocity{mps: x}, &Momentum{kgmps: y}), InverseMass{per_kg: x/y});
1686 assert_eq!(div_check(&Velocity{mps: x}, &Power{W: y}), InverseForce{per_N: x/y});
1687 assert_eq!(mul_check(&Velocity{mps: x}, &InverseAbsorbedDose{per_Gy: y}), TimePerDistance{spm: x*y});
1688 assert_eq!(mul_check(&Velocity{mps: x}, &InverseDoseEquivalent{per_Sv: y}), TimePerDistance{spm: x*y});
1689 assert_eq!(div_check(&VolumePerMass{m3_per_kg: x}, &Distance{m: y}), AreaPerMass{m2_per_kg: x/y});
1690 assert_eq!(mul_check(&VolumePerMass{m3_per_kg: x}, &InverseDistance{per_m: y}), AreaPerMass{m2_per_kg: x*y});
1691 assert_eq!(div_check(&VolumePerMass{m3_per_kg: x}, &InverseMass{per_kg: y}), Volume{m3: x/y});
1692 assert_eq!(mul_check(&VolumePerMass{m3_per_kg: x}, &Mass{kg: y}), Volume{m3: x*y});
1693 assert_eq!(mul_check(&VolumePerMass{m3_per_kg: x}, &Concentration{molpm3: y}), Molality{molpkg: x*y});
1694 assert_eq!(div_check(&VolumePerMass{m3_per_kg: x}, &Molality{molpkg: y}), MolarVolume{m3_per_mol: x/y});
1695 assert_eq!(mul_check(&VolumePerMass{m3_per_kg: x}, &MolarMass{kgpmol: y}), MolarVolume{m3_per_mol: x*y});
1696 assert_eq!(div_check(&VolumePerMass{m3_per_kg: x}, &MolarVolume{m3_per_mol: y}), Molality{molpkg: x/y});
1697 assert_eq!(mul_check(&VolumePerMass{m3_per_kg: x}, &InverseVolume{per_m3: y}), InverseMass{per_kg: x*y});
1698 assert_eq!(div_check(&VolumePerMass{m3_per_kg: x}, &Volume{m3: y}), InverseMass{per_kg: x/y});
1699 assert_eq!(mul_check(&VolumePerMass{m3_per_kg: x}, &AreaDensity{kgpm2: y}), Distance{m: x*y});
1700 assert_eq!(div_check(&VolumePerMass{m3_per_kg: x}, &AreaPerMass{m2_per_kg: y}), Distance{m: x/y});
1701 assert_eq!(mul_check(&VolumePerMass{m3_per_kg: x}, &InverseAbsorbedDose{per_Gy: y}), InversePressure{per_Pa: x*y});
1702 assert_eq!(mul_check(&VolumePerMass{m3_per_kg: x}, &InverseDoseEquivalent{per_Sv: y}), InversePressure{per_Pa: x*y});
1703 assert_eq!(mul_check(&InverseAbsorbedDose{per_Gy: x}, &Distance{m: y}), InverseAcceleration{s2pm: x*y});
1704 assert_eq!(div_check(&InverseAbsorbedDose{per_Gy: x}, &InverseDistance{per_m: y}), InverseAcceleration{s2pm: x/y});
1705 assert_eq!(mul_check(&InverseAbsorbedDose{per_Gy: x}, &InverseMass{per_kg: y}), InverseEnergy{per_J: x*y});
1706 assert_eq!(div_check(&InverseAbsorbedDose{per_Gy: x}, &InverseTemperature{per_K: y}), InverseSpecificHeatCapacity{kgK_per_J: x/y});
1707 assert_eq!(div_check(&InverseAbsorbedDose{per_Gy: x}, &Mass{kg: y}), InverseEnergy{per_J: x/y});
1708 assert_eq!(mul_check(&InverseAbsorbedDose{per_Gy: x}, &Temperature{K: y}), InverseSpecificHeatCapacity{kgK_per_J: x*y});
1709 assert_eq!(div_check(&InverseAbsorbedDose{per_Gy: x}, &InverseSpecificHeatCapacity{kgK_per_J: y}), InverseTemperature{per_K: x/y});
1710 assert_eq!(mul_check(&InverseAbsorbedDose{per_Gy: x}, &SpecificHeatCapacity{J_per_kgK: y}), InverseTemperature{per_K: x*y});
1711 assert_eq!(mul_check(&InverseAbsorbedDose{per_Gy: x}, &Acceleration{mps2: y}), InverseDistance{per_m: x*y});
1712 assert_eq!(div_check(&InverseAbsorbedDose{per_Gy: x}, &Density{kgpm3: y}), InversePressure{per_Pa: x/y});
1713 assert_eq!(mul_check(&InverseAbsorbedDose{per_Gy: x}, &Energy{J: y}), Mass{kg: x*y});
1714 assert_eq!(mul_check(&InverseAbsorbedDose{per_Gy: x}, &Torque{Nm: y}), Mass{kg: x*y});
1715 assert_eq!(div_check(&InverseAbsorbedDose{per_Gy: x}, &InverseAcceleration{s2pm: y}), InverseDistance{per_m: x/y});
1716 assert_eq!(div_check(&InverseAbsorbedDose{per_Gy: x}, &InverseEnergy{per_J: y}), Mass{kg: x/y});
1717 assert_eq!(div_check(&InverseAbsorbedDose{per_Gy: x}, &InverseTorque{per_Nm: y}), Mass{kg: x/y});
1718 assert_eq!(div_check(&InverseAbsorbedDose{per_Gy: x}, &InversePressure{per_Pa: y}), Density{kgpm3: x/y});
1719 assert_eq!(mul_check(&InverseAbsorbedDose{per_Gy: x}, &Pressure{Pa: y}), Density{kgpm3: x*y});
1720 assert_eq!(div_check(&InverseAbsorbedDose{per_Gy: x}, &TimePerDistance{spm: y}), TimePerDistance{spm: x/y});
1721 assert_eq!(mul_check(&InverseAbsorbedDose{per_Gy: x}, &Velocity{mps: y}), TimePerDistance{spm: x*y});
1722 assert_eq!(mul_check(&InverseAbsorbedDose{per_Gy: x}, &VolumePerMass{m3_per_kg: y}), InversePressure{per_Pa: x*y});
1723 assert_eq!(mul_check(&InverseDoseEquivalent{per_Sv: x}, &Distance{m: y}), InverseAcceleration{s2pm: x*y});
1724 assert_eq!(div_check(&InverseDoseEquivalent{per_Sv: x}, &InverseDistance{per_m: y}), InverseAcceleration{s2pm: x/y});
1725 assert_eq!(mul_check(&InverseDoseEquivalent{per_Sv: x}, &InverseMass{per_kg: y}), InverseEnergy{per_J: x*y});
1726 assert_eq!(div_check(&InverseDoseEquivalent{per_Sv: x}, &InverseTemperature{per_K: y}), InverseSpecificHeatCapacity{kgK_per_J: x/y});
1727 assert_eq!(div_check(&InverseDoseEquivalent{per_Sv: x}, &Mass{kg: y}), InverseEnergy{per_J: x/y});
1728 assert_eq!(mul_check(&InverseDoseEquivalent{per_Sv: x}, &Temperature{K: y}), InverseSpecificHeatCapacity{kgK_per_J: x*y});
1729 assert_eq!(div_check(&InverseDoseEquivalent{per_Sv: x}, &InverseSpecificHeatCapacity{kgK_per_J: y}), InverseTemperature{per_K: x/y});
1730 assert_eq!(mul_check(&InverseDoseEquivalent{per_Sv: x}, &SpecificHeatCapacity{J_per_kgK: y}), InverseTemperature{per_K: x*y});
1731 assert_eq!(mul_check(&InverseDoseEquivalent{per_Sv: x}, &Acceleration{mps2: y}), InverseDistance{per_m: x*y});
1732 assert_eq!(div_check(&InverseDoseEquivalent{per_Sv: x}, &Density{kgpm3: y}), InversePressure{per_Pa: x/y});
1733 assert_eq!(mul_check(&InverseDoseEquivalent{per_Sv: x}, &Energy{J: y}), Mass{kg: x*y});
1734 assert_eq!(mul_check(&InverseDoseEquivalent{per_Sv: x}, &Torque{Nm: y}), Mass{kg: x*y});
1735 assert_eq!(div_check(&InverseDoseEquivalent{per_Sv: x}, &InverseAcceleration{s2pm: y}), InverseDistance{per_m: x/y});
1736 assert_eq!(div_check(&InverseDoseEquivalent{per_Sv: x}, &InverseEnergy{per_J: y}), Mass{kg: x/y});
1737 assert_eq!(div_check(&InverseDoseEquivalent{per_Sv: x}, &InverseTorque{per_Nm: y}), Mass{kg: x/y});
1738 assert_eq!(div_check(&InverseDoseEquivalent{per_Sv: x}, &InversePressure{per_Pa: y}), Density{kgpm3: x/y});
1739 assert_eq!(mul_check(&InverseDoseEquivalent{per_Sv: x}, &Pressure{Pa: y}), Density{kgpm3: x*y});
1740 assert_eq!(div_check(&InverseDoseEquivalent{per_Sv: x}, &TimePerDistance{spm: y}), TimePerDistance{spm: x/y});
1741 assert_eq!(mul_check(&InverseDoseEquivalent{per_Sv: x}, &Velocity{mps: y}), TimePerDistance{spm: x*y});
1742 assert_eq!(mul_check(&InverseDoseEquivalent{per_Sv: x}, &VolumePerMass{m3_per_kg: y}), InversePressure{per_Pa: x*y});
1743 assert_eq!(div_check(&(x as f64), &Amount{mol: y as f64}), InverseAmount{per_mol: x as f64/y as f64});
1744 assert_eq!(div_check(&(x as f32), &Amount{mol: y as f32}), InverseAmount{per_mol: x as f32/y as f32});
1745 assert_eq!(div_check(&(x as i64), &Amount{mol: y as i64}), InverseAmount{per_mol: x as i64/y as i64});
1746 assert_eq!(div_check(&(x as i32), &Amount{mol: y as i32}), InverseAmount{per_mol: x as i32/y as i32});
1747 assert_eq!(div_check(&(x as f64), &Current{A: y as f64}), InverseCurrent{per_A: x as f64/y as f64});
1748 assert_eq!(div_check(&(x as f32), &Current{A: y as f32}), InverseCurrent{per_A: x as f32/y as f32});
1749 assert_eq!(div_check(&(x as i64), &Current{A: y as i64}), InverseCurrent{per_A: x as i64/y as i64});
1750 assert_eq!(div_check(&(x as i32), &Current{A: y as i32}), InverseCurrent{per_A: x as i32/y as i32});
1751 assert_eq!(div_check(&(x as f64), &Distance{m: y as f64}), InverseDistance{per_m: x as f64/y as f64});
1752 assert_eq!(div_check(&(x as f32), &Distance{m: y as f32}), InverseDistance{per_m: x as f32/y as f32});
1753 assert_eq!(div_check(&(x as i64), &Distance{m: y as i64}), InverseDistance{per_m: x as i64/y as i64});
1754 assert_eq!(div_check(&(x as i32), &Distance{m: y as i32}), InverseDistance{per_m: x as i32/y as i32});
1755 assert_eq!(div_check(&(x as f64), &InverseAmount{per_mol: y as f64}), Amount{mol: x as f64/y as f64});
1756 assert_eq!(div_check(&(x as f32), &InverseAmount{per_mol: y as f32}), Amount{mol: x as f32/y as f32});
1757 assert_eq!(div_check(&(x as i64), &InverseAmount{per_mol: y as i64}), Amount{mol: x as i64/y as i64});
1758 assert_eq!(div_check(&(x as i32), &InverseAmount{per_mol: y as i32}), Amount{mol: x as i32/y as i32});
1759 assert_eq!(div_check(&(x as f64), &InverseCurrent{per_A: y as f64}), Current{A: x as f64/y as f64});
1760 assert_eq!(div_check(&(x as f32), &InverseCurrent{per_A: y as f32}), Current{A: x as f32/y as f32});
1761 assert_eq!(div_check(&(x as i64), &InverseCurrent{per_A: y as i64}), Current{A: x as i64/y as i64});
1762 assert_eq!(div_check(&(x as i32), &InverseCurrent{per_A: y as i32}), Current{A: x as i32/y as i32});
1763 assert_eq!(div_check(&(x as f64), &InverseDistance{per_m: y as f64}), Distance{m: x as f64/y as f64});
1764 assert_eq!(div_check(&(x as f32), &InverseDistance{per_m: y as f32}), Distance{m: x as f32/y as f32});
1765 assert_eq!(div_check(&(x as i64), &InverseDistance{per_m: y as i64}), Distance{m: x as i64/y as i64});
1766 assert_eq!(div_check(&(x as i32), &InverseDistance{per_m: y as i32}), Distance{m: x as i32/y as i32});
1767 assert_eq!(div_check(&(x as f64), &InverseLuminosity{per_cd: y as f64}), Luminosity{cd: x as f64/y as f64});
1768 assert_eq!(div_check(&(x as f32), &InverseLuminosity{per_cd: y as f32}), Luminosity{cd: x as f32/y as f32});
1769 assert_eq!(div_check(&(x as i64), &InverseLuminosity{per_cd: y as i64}), Luminosity{cd: x as i64/y as i64});
1770 assert_eq!(div_check(&(x as i32), &InverseLuminosity{per_cd: y as i32}), Luminosity{cd: x as i32/y as i32});
1771 assert_eq!(div_check(&(x as f64), &InverseMass{per_kg: y as f64}), Mass{kg: x as f64/y as f64});
1772 assert_eq!(div_check(&(x as f32), &InverseMass{per_kg: y as f32}), Mass{kg: x as f32/y as f32});
1773 assert_eq!(div_check(&(x as i64), &InverseMass{per_kg: y as i64}), Mass{kg: x as i64/y as i64});
1774 assert_eq!(div_check(&(x as i32), &InverseMass{per_kg: y as i32}), Mass{kg: x as i32/y as i32});
1775 assert_eq!(div_check(&(x as f64), &InverseTemperature{per_K: y as f64}), Temperature{K: x as f64/y as f64});
1776 assert_eq!(div_check(&(x as f32), &InverseTemperature{per_K: y as f32}), Temperature{K: x as f32/y as f32});
1777 assert_eq!(div_check(&(x as i64), &InverseTemperature{per_K: y as i64}), Temperature{K: x as i64/y as i64});
1778 assert_eq!(div_check(&(x as i32), &InverseTemperature{per_K: y as i32}), Temperature{K: x as i32/y as i32});
1779 assert_eq!(div_check(&(x as f64), &Luminosity{cd: y as f64}), InverseLuminosity{per_cd: x as f64/y as f64});
1780 assert_eq!(div_check(&(x as f32), &Luminosity{cd: y as f32}), InverseLuminosity{per_cd: x as f32/y as f32});
1781 assert_eq!(div_check(&(x as i64), &Luminosity{cd: y as i64}), InverseLuminosity{per_cd: x as i64/y as i64});
1782 assert_eq!(div_check(&(x as i32), &Luminosity{cd: y as i32}), InverseLuminosity{per_cd: x as i32/y as i32});
1783 assert_eq!(div_check(&(x as f64), &Mass{kg: y as f64}), InverseMass{per_kg: x as f64/y as f64});
1784 assert_eq!(div_check(&(x as f32), &Mass{kg: y as f32}), InverseMass{per_kg: x as f32/y as f32});
1785 assert_eq!(div_check(&(x as i64), &Mass{kg: y as i64}), InverseMass{per_kg: x as i64/y as i64});
1786 assert_eq!(div_check(&(x as i32), &Mass{kg: y as i32}), InverseMass{per_kg: x as i32/y as i32});
1787 assert_eq!(div_check(&(x as f64), &Temperature{K: y as f64}), InverseTemperature{per_K: x as f64/y as f64});
1788 assert_eq!(div_check(&(x as f32), &Temperature{K: y as f32}), InverseTemperature{per_K: x as f32/y as f32});
1789 assert_eq!(div_check(&(x as i64), &Temperature{K: y as i64}), InverseTemperature{per_K: x as i64/y as i64});
1790 assert_eq!(div_check(&(x as i32), &Temperature{K: y as i32}), InverseTemperature{per_K: x as i32/y as i32});
1791 assert_eq!(div_check(&(x as f64), &Amount{mol: y as f64}), InverseAmount{per_mol: x as f64/y as f64});
1792 assert_eq!(div_check(&(x as f32), &Amount{mol: y as f32}), InverseAmount{per_mol: x as f32/y as f32});
1793 assert_eq!(div_check(&(x as i64), &Amount{mol: y as i64}), InverseAmount{per_mol: x as i64/y as i64});
1794 assert_eq!(div_check(&(x as i32), &Amount{mol: y as i32}), InverseAmount{per_mol: x as i32/y as i32});
1795 assert_eq!(div_check(&(x as f64), &Current{A: y as f64}), InverseCurrent{per_A: x as f64/y as f64});
1796 assert_eq!(div_check(&(x as f32), &Current{A: y as f32}), InverseCurrent{per_A: x as f32/y as f32});
1797 assert_eq!(div_check(&(x as i64), &Current{A: y as i64}), InverseCurrent{per_A: x as i64/y as i64});
1798 assert_eq!(div_check(&(x as i32), &Current{A: y as i32}), InverseCurrent{per_A: x as i32/y as i32});
1799 assert_eq!(div_check(&(x as f64), &Distance{m: y as f64}), InverseDistance{per_m: x as f64/y as f64});
1800 assert_eq!(div_check(&(x as f32), &Distance{m: y as f32}), InverseDistance{per_m: x as f32/y as f32});
1801 assert_eq!(div_check(&(x as i64), &Distance{m: y as i64}), InverseDistance{per_m: x as i64/y as i64});
1802 assert_eq!(div_check(&(x as i32), &Distance{m: y as i32}), InverseDistance{per_m: x as i32/y as i32});
1803 assert_eq!(div_check(&(x as f64), &InverseAmount{per_mol: y as f64}), Amount{mol: x as f64/y as f64});
1804 assert_eq!(div_check(&(x as f32), &InverseAmount{per_mol: y as f32}), Amount{mol: x as f32/y as f32});
1805 assert_eq!(div_check(&(x as i64), &InverseAmount{per_mol: y as i64}), Amount{mol: x as i64/y as i64});
1806 assert_eq!(div_check(&(x as i32), &InverseAmount{per_mol: y as i32}), Amount{mol: x as i32/y as i32});
1807 assert_eq!(div_check(&(x as f64), &InverseCurrent{per_A: y as f64}), Current{A: x as f64/y as f64});
1808 assert_eq!(div_check(&(x as f32), &InverseCurrent{per_A: y as f32}), Current{A: x as f32/y as f32});
1809 assert_eq!(div_check(&(x as i64), &InverseCurrent{per_A: y as i64}), Current{A: x as i64/y as i64});
1810 assert_eq!(div_check(&(x as i32), &InverseCurrent{per_A: y as i32}), Current{A: x as i32/y as i32});
1811 assert_eq!(div_check(&(x as f64), &InverseDistance{per_m: y as f64}), Distance{m: x as f64/y as f64});
1812 assert_eq!(div_check(&(x as f32), &InverseDistance{per_m: y as f32}), Distance{m: x as f32/y as f32});
1813 assert_eq!(div_check(&(x as i64), &InverseDistance{per_m: y as i64}), Distance{m: x as i64/y as i64});
1814 assert_eq!(div_check(&(x as i32), &InverseDistance{per_m: y as i32}), Distance{m: x as i32/y as i32});
1815 assert_eq!(div_check(&(x as f64), &InverseLuminosity{per_cd: y as f64}), Luminosity{cd: x as f64/y as f64});
1816 assert_eq!(div_check(&(x as f32), &InverseLuminosity{per_cd: y as f32}), Luminosity{cd: x as f32/y as f32});
1817 assert_eq!(div_check(&(x as i64), &InverseLuminosity{per_cd: y as i64}), Luminosity{cd: x as i64/y as i64});
1818 assert_eq!(div_check(&(x as i32), &InverseLuminosity{per_cd: y as i32}), Luminosity{cd: x as i32/y as i32});
1819 assert_eq!(div_check(&(x as f64), &InverseMass{per_kg: y as f64}), Mass{kg: x as f64/y as f64});
1820 assert_eq!(div_check(&(x as f32), &InverseMass{per_kg: y as f32}), Mass{kg: x as f32/y as f32});
1821 assert_eq!(div_check(&(x as i64), &InverseMass{per_kg: y as i64}), Mass{kg: x as i64/y as i64});
1822 assert_eq!(div_check(&(x as i32), &InverseMass{per_kg: y as i32}), Mass{kg: x as i32/y as i32});
1823 assert_eq!(div_check(&(x as f64), &InverseTemperature{per_K: y as f64}), Temperature{K: x as f64/y as f64});
1824 assert_eq!(div_check(&(x as f32), &InverseTemperature{per_K: y as f32}), Temperature{K: x as f32/y as f32});
1825 assert_eq!(div_check(&(x as i64), &InverseTemperature{per_K: y as i64}), Temperature{K: x as i64/y as i64});
1826 assert_eq!(div_check(&(x as i32), &InverseTemperature{per_K: y as i32}), Temperature{K: x as i32/y as i32});
1827 assert_eq!(div_check(&(x as f64), &Luminosity{cd: y as f64}), InverseLuminosity{per_cd: x as f64/y as f64});
1828 assert_eq!(div_check(&(x as f32), &Luminosity{cd: y as f32}), InverseLuminosity{per_cd: x as f32/y as f32});
1829 assert_eq!(div_check(&(x as i64), &Luminosity{cd: y as i64}), InverseLuminosity{per_cd: x as i64/y as i64});
1830 assert_eq!(div_check(&(x as i32), &Luminosity{cd: y as i32}), InverseLuminosity{per_cd: x as i32/y as i32});
1831 assert_eq!(div_check(&(x as f64), &Mass{kg: y as f64}), InverseMass{per_kg: x as f64/y as f64});
1832 assert_eq!(div_check(&(x as f32), &Mass{kg: y as f32}), InverseMass{per_kg: x as f32/y as f32});
1833 assert_eq!(div_check(&(x as i64), &Mass{kg: y as i64}), InverseMass{per_kg: x as i64/y as i64});
1834 assert_eq!(div_check(&(x as i32), &Mass{kg: y as i32}), InverseMass{per_kg: x as i32/y as i32});
1835 assert_eq!(div_check(&(x as f64), &Temperature{K: y as f64}), InverseTemperature{per_K: x as f64/y as f64});
1836 assert_eq!(div_check(&(x as f32), &Temperature{K: y as f32}), InverseTemperature{per_K: x as f32/y as f32});
1837 assert_eq!(div_check(&(x as i64), &Temperature{K: y as i64}), InverseTemperature{per_K: x as i64/y as i64});
1838 assert_eq!(div_check(&(x as i32), &Temperature{K: y as i32}), InverseTemperature{per_K: x as i32/y as i32});
1839 assert_eq!(div_check(&(x as f64), &CatalyticActivity{molps: y as f64}), InverseCatalyticActivity{s_per_mol: x as f64/y as f64});
1840 assert_eq!(div_check(&(x as f32), &CatalyticActivity{molps: y as f32}), InverseCatalyticActivity{s_per_mol: x as f32/y as f32});
1841 assert_eq!(div_check(&(x as i64), &CatalyticActivity{molps: y as i64}), InverseCatalyticActivity{s_per_mol: x as i64/y as i64});
1842 assert_eq!(div_check(&(x as i32), &CatalyticActivity{molps: y as i32}), InverseCatalyticActivity{s_per_mol: x as i32/y as i32});
1843 assert_eq!(div_check(&(x as f64), &Concentration{molpm3: y as f64}), MolarVolume{m3_per_mol: x as f64/y as f64});
1844 assert_eq!(div_check(&(x as f32), &Concentration{molpm3: y as f32}), MolarVolume{m3_per_mol: x as f32/y as f32});
1845 assert_eq!(div_check(&(x as i64), &Concentration{molpm3: y as i64}), MolarVolume{m3_per_mol: x as i64/y as i64});
1846 assert_eq!(div_check(&(x as i32), &Concentration{molpm3: y as i32}), MolarVolume{m3_per_mol: x as i32/y as i32});
1847 assert_eq!(div_check(&(x as f64), &InverseCatalyticActivity{s_per_mol: y as f64}), CatalyticActivity{molps: x as f64/y as f64});
1848 assert_eq!(div_check(&(x as f32), &InverseCatalyticActivity{s_per_mol: y as f32}), CatalyticActivity{molps: x as f32/y as f32});
1849 assert_eq!(div_check(&(x as i64), &InverseCatalyticActivity{s_per_mol: y as i64}), CatalyticActivity{molps: x as i64/y as i64});
1850 assert_eq!(div_check(&(x as i32), &InverseCatalyticActivity{s_per_mol: y as i32}), CatalyticActivity{molps: x as i32/y as i32});
1851 assert_eq!(div_check(&(x as f64), &InverseSpecificHeatCapacity{kgK_per_J: y as f64}), SpecificHeatCapacity{J_per_kgK: x as f64/y as f64});
1852 assert_eq!(div_check(&(x as f32), &InverseSpecificHeatCapacity{kgK_per_J: y as f32}), SpecificHeatCapacity{J_per_kgK: x as f32/y as f32});
1853 assert_eq!(div_check(&(x as i64), &InverseSpecificHeatCapacity{kgK_per_J: y as i64}), SpecificHeatCapacity{J_per_kgK: x as i64/y as i64});
1854 assert_eq!(div_check(&(x as i32), &InverseSpecificHeatCapacity{kgK_per_J: y as i32}), SpecificHeatCapacity{J_per_kgK: x as i32/y as i32});
1855 assert_eq!(div_check(&(x as f64), &MolarVolume{m3_per_mol: y as f64}), Concentration{molpm3: x as f64/y as f64});
1856 assert_eq!(div_check(&(x as f32), &MolarVolume{m3_per_mol: y as f32}), Concentration{molpm3: x as f32/y as f32});
1857 assert_eq!(div_check(&(x as i64), &MolarVolume{m3_per_mol: y as i64}), Concentration{molpm3: x as i64/y as i64});
1858 assert_eq!(div_check(&(x as i32), &MolarVolume{m3_per_mol: y as i32}), Concentration{molpm3: x as i32/y as i32});
1859 assert_eq!(div_check(&(x as f64), &SpecificHeatCapacity{J_per_kgK: y as f64}), InverseSpecificHeatCapacity{kgK_per_J: x as f64/y as f64});
1860 assert_eq!(div_check(&(x as f32), &SpecificHeatCapacity{J_per_kgK: y as f32}), InverseSpecificHeatCapacity{kgK_per_J: x as f32/y as f32});
1861 assert_eq!(div_check(&(x as i64), &SpecificHeatCapacity{J_per_kgK: y as i64}), InverseSpecificHeatCapacity{kgK_per_J: x as i64/y as i64});
1862 assert_eq!(div_check(&(x as i32), &SpecificHeatCapacity{J_per_kgK: y as i32}), InverseSpecificHeatCapacity{kgK_per_J: x as i32/y as i32});
1863 assert_eq!(div_check(&(x as f64), &CatalyticActivity{molps: y as f64}), InverseCatalyticActivity{s_per_mol: x as f64/y as f64});
1864 assert_eq!(div_check(&(x as f32), &CatalyticActivity{molps: y as f32}), InverseCatalyticActivity{s_per_mol: x as f32/y as f32});
1865 assert_eq!(div_check(&(x as i64), &CatalyticActivity{molps: y as i64}), InverseCatalyticActivity{s_per_mol: x as i64/y as i64});
1866 assert_eq!(div_check(&(x as i32), &CatalyticActivity{molps: y as i32}), InverseCatalyticActivity{s_per_mol: x as i32/y as i32});
1867 assert_eq!(div_check(&(x as f64), &Concentration{molpm3: y as f64}), MolarVolume{m3_per_mol: x as f64/y as f64});
1868 assert_eq!(div_check(&(x as f32), &Concentration{molpm3: y as f32}), MolarVolume{m3_per_mol: x as f32/y as f32});
1869 assert_eq!(div_check(&(x as i64), &Concentration{molpm3: y as i64}), MolarVolume{m3_per_mol: x as i64/y as i64});
1870 assert_eq!(div_check(&(x as i32), &Concentration{molpm3: y as i32}), MolarVolume{m3_per_mol: x as i32/y as i32});
1871 assert_eq!(div_check(&(x as f64), &InverseCatalyticActivity{s_per_mol: y as f64}), CatalyticActivity{molps: x as f64/y as f64});
1872 assert_eq!(div_check(&(x as f32), &InverseCatalyticActivity{s_per_mol: y as f32}), CatalyticActivity{molps: x as f32/y as f32});
1873 assert_eq!(div_check(&(x as i64), &InverseCatalyticActivity{s_per_mol: y as i64}), CatalyticActivity{molps: x as i64/y as i64});
1874 assert_eq!(div_check(&(x as i32), &InverseCatalyticActivity{s_per_mol: y as i32}), CatalyticActivity{molps: x as i32/y as i32});
1875 assert_eq!(div_check(&(x as f64), &InverseSpecificHeatCapacity{kgK_per_J: y as f64}), SpecificHeatCapacity{J_per_kgK: x as f64/y as f64});
1876 assert_eq!(div_check(&(x as f32), &InverseSpecificHeatCapacity{kgK_per_J: y as f32}), SpecificHeatCapacity{J_per_kgK: x as f32/y as f32});
1877 assert_eq!(div_check(&(x as i64), &InverseSpecificHeatCapacity{kgK_per_J: y as i64}), SpecificHeatCapacity{J_per_kgK: x as i64/y as i64});
1878 assert_eq!(div_check(&(x as i32), &InverseSpecificHeatCapacity{kgK_per_J: y as i32}), SpecificHeatCapacity{J_per_kgK: x as i32/y as i32});
1879 assert_eq!(div_check(&(x as f64), &MolarVolume{m3_per_mol: y as f64}), Concentration{molpm3: x as f64/y as f64});
1880 assert_eq!(div_check(&(x as f32), &MolarVolume{m3_per_mol: y as f32}), Concentration{molpm3: x as f32/y as f32});
1881 assert_eq!(div_check(&(x as i64), &MolarVolume{m3_per_mol: y as i64}), Concentration{molpm3: x as i64/y as i64});
1882 assert_eq!(div_check(&(x as i32), &MolarVolume{m3_per_mol: y as i32}), Concentration{molpm3: x as i32/y as i32});
1883 assert_eq!(div_check(&(x as f64), &SpecificHeatCapacity{J_per_kgK: y as f64}), InverseSpecificHeatCapacity{kgK_per_J: x as f64/y as f64});
1884 assert_eq!(div_check(&(x as f32), &SpecificHeatCapacity{J_per_kgK: y as f32}), InverseSpecificHeatCapacity{kgK_per_J: x as f32/y as f32});
1885 assert_eq!(div_check(&(x as i64), &SpecificHeatCapacity{J_per_kgK: y as i64}), InverseSpecificHeatCapacity{kgK_per_J: x as i64/y as i64});
1886 assert_eq!(div_check(&(x as i32), &SpecificHeatCapacity{J_per_kgK: y as i32}), InverseSpecificHeatCapacity{kgK_per_J: x as i32/y as i32});
1887 assert_eq!(div_check(&(x as f64), &AreaPerLumen{m2_per_lm: y as f64}), Illuminance{lux: x as f64/y as f64});
1888 assert_eq!(div_check(&(x as f32), &AreaPerLumen{m2_per_lm: y as f32}), Illuminance{lux: x as f32/y as f32});
1889 assert_eq!(div_check(&(x as i64), &AreaPerLumen{m2_per_lm: y as i64}), Illuminance{lux: x as i64/y as i64});
1890 assert_eq!(div_check(&(x as i32), &AreaPerLumen{m2_per_lm: y as i32}), Illuminance{lux: x as i32/y as i32});
1891 assert_eq!(div_check(&(x as f64), &Capacitance{F: y as f64}), Elastance{per_F: x as f64/y as f64});
1892 assert_eq!(div_check(&(x as f32), &Capacitance{F: y as f32}), Elastance{per_F: x as f32/y as f32});
1893 assert_eq!(div_check(&(x as i64), &Capacitance{F: y as i64}), Elastance{per_F: x as i64/y as i64});
1894 assert_eq!(div_check(&(x as i32), &Capacitance{F: y as i32}), Elastance{per_F: x as i32/y as i32});
1895 assert_eq!(div_check(&(x as f64), &Charge{C: y as f64}), InverseCharge{per_C: x as f64/y as f64});
1896 assert_eq!(div_check(&(x as f32), &Charge{C: y as f32}), InverseCharge{per_C: x as f32/y as f32});
1897 assert_eq!(div_check(&(x as i64), &Charge{C: y as i64}), InverseCharge{per_C: x as i64/y as i64});
1898 assert_eq!(div_check(&(x as i32), &Charge{C: y as i32}), InverseCharge{per_C: x as i32/y as i32});
1899 assert_eq!(div_check(&(x as f64), &Elastance{per_F: y as f64}), Capacitance{F: x as f64/y as f64});
1900 assert_eq!(div_check(&(x as f32), &Elastance{per_F: y as f32}), Capacitance{F: x as f32/y as f32});
1901 assert_eq!(div_check(&(x as i64), &Elastance{per_F: y as i64}), Capacitance{F: x as i64/y as i64});
1902 assert_eq!(div_check(&(x as i32), &Elastance{per_F: y as i32}), Capacitance{F: x as i32/y as i32});
1903 assert_eq!(div_check(&(x as f64), &Illuminance{lux: y as f64}), AreaPerLumen{m2_per_lm: x as f64/y as f64});
1904 assert_eq!(div_check(&(x as f32), &Illuminance{lux: y as f32}), AreaPerLumen{m2_per_lm: x as f32/y as f32});
1905 assert_eq!(div_check(&(x as i64), &Illuminance{lux: y as i64}), AreaPerLumen{m2_per_lm: x as i64/y as i64});
1906 assert_eq!(div_check(&(x as i32), &Illuminance{lux: y as i32}), AreaPerLumen{m2_per_lm: x as i32/y as i32});
1907 assert_eq!(div_check(&(x as f64), &Inductance{H: y as f64}), InverseInductance{per_H: x as f64/y as f64});
1908 assert_eq!(div_check(&(x as f32), &Inductance{H: y as f32}), InverseInductance{per_H: x as f32/y as f32});
1909 assert_eq!(div_check(&(x as i64), &Inductance{H: y as i64}), InverseInductance{per_H: x as i64/y as i64});
1910 assert_eq!(div_check(&(x as i32), &Inductance{H: y as i32}), InverseInductance{per_H: x as i32/y as i32});
1911 assert_eq!(div_check(&(x as f64), &InverseCharge{per_C: y as f64}), Charge{C: x as f64/y as f64});
1912 assert_eq!(div_check(&(x as f32), &InverseCharge{per_C: y as f32}), Charge{C: x as f32/y as f32});
1913 assert_eq!(div_check(&(x as i64), &InverseCharge{per_C: y as i64}), Charge{C: x as i64/y as i64});
1914 assert_eq!(div_check(&(x as i32), &InverseCharge{per_C: y as i32}), Charge{C: x as i32/y as i32});
1915 assert_eq!(div_check(&(x as f64), &InverseInductance{per_H: y as f64}), Inductance{H: x as f64/y as f64});
1916 assert_eq!(div_check(&(x as f32), &InverseInductance{per_H: y as f32}), Inductance{H: x as f32/y as f32});
1917 assert_eq!(div_check(&(x as i64), &InverseInductance{per_H: y as i64}), Inductance{H: x as i64/y as i64});
1918 assert_eq!(div_check(&(x as i32), &InverseInductance{per_H: y as i32}), Inductance{H: x as i32/y as i32});
1919 assert_eq!(div_check(&(x as f64), &InverseLuminousFlux{per_lm: y as f64}), LuminousFlux{lm: x as f64/y as f64});
1920 assert_eq!(div_check(&(x as f32), &InverseLuminousFlux{per_lm: y as f32}), LuminousFlux{lm: x as f32/y as f32});
1921 assert_eq!(div_check(&(x as i64), &InverseLuminousFlux{per_lm: y as i64}), LuminousFlux{lm: x as i64/y as i64});
1922 assert_eq!(div_check(&(x as i32), &InverseLuminousFlux{per_lm: y as i32}), LuminousFlux{lm: x as i32/y as i32});
1923 assert_eq!(div_check(&(x as f64), &InverseMagneticFlux{per_Wb: y as f64}), MagneticFlux{Wb: x as f64/y as f64});
1924 assert_eq!(div_check(&(x as f32), &InverseMagneticFlux{per_Wb: y as f32}), MagneticFlux{Wb: x as f32/y as f32});
1925 assert_eq!(div_check(&(x as i64), &InverseMagneticFlux{per_Wb: y as i64}), MagneticFlux{Wb: x as i64/y as i64});
1926 assert_eq!(div_check(&(x as i32), &InverseMagneticFlux{per_Wb: y as i32}), MagneticFlux{Wb: x as i32/y as i32});
1927 assert_eq!(div_check(&(x as f64), &InverseMagneticFluxDensity{m2_per_Wb: y as f64}), MagneticFluxDensity{T: x as f64/y as f64});
1928 assert_eq!(div_check(&(x as f32), &InverseMagneticFluxDensity{m2_per_Wb: y as f32}), MagneticFluxDensity{T: x as f32/y as f32});
1929 assert_eq!(div_check(&(x as i64), &InverseMagneticFluxDensity{m2_per_Wb: y as i64}), MagneticFluxDensity{T: x as i64/y as i64});
1930 assert_eq!(div_check(&(x as i32), &InverseMagneticFluxDensity{m2_per_Wb: y as i32}), MagneticFluxDensity{T: x as i32/y as i32});
1931 assert_eq!(div_check(&(x as f64), &InverseVoltage{per_V: y as f64}), Voltage{V: x as f64/y as f64});
1932 assert_eq!(div_check(&(x as f32), &InverseVoltage{per_V: y as f32}), Voltage{V: x as f32/y as f32});
1933 assert_eq!(div_check(&(x as i64), &InverseVoltage{per_V: y as i64}), Voltage{V: x as i64/y as i64});
1934 assert_eq!(div_check(&(x as i32), &InverseVoltage{per_V: y as i32}), Voltage{V: x as i32/y as i32});
1935 assert_eq!(div_check(&(x as f64), &LuminousFlux{lm: y as f64}), InverseLuminousFlux{per_lm: x as f64/y as f64});
1936 assert_eq!(div_check(&(x as f32), &LuminousFlux{lm: y as f32}), InverseLuminousFlux{per_lm: x as f32/y as f32});
1937 assert_eq!(div_check(&(x as i64), &LuminousFlux{lm: y as i64}), InverseLuminousFlux{per_lm: x as i64/y as i64});
1938 assert_eq!(div_check(&(x as i32), &LuminousFlux{lm: y as i32}), InverseLuminousFlux{per_lm: x as i32/y as i32});
1939 assert_eq!(div_check(&(x as f64), &MagneticFlux{Wb: y as f64}), InverseMagneticFlux{per_Wb: x as f64/y as f64});
1940 assert_eq!(div_check(&(x as f32), &MagneticFlux{Wb: y as f32}), InverseMagneticFlux{per_Wb: x as f32/y as f32});
1941 assert_eq!(div_check(&(x as i64), &MagneticFlux{Wb: y as i64}), InverseMagneticFlux{per_Wb: x as i64/y as i64});
1942 assert_eq!(div_check(&(x as i32), &MagneticFlux{Wb: y as i32}), InverseMagneticFlux{per_Wb: x as i32/y as i32});
1943 assert_eq!(div_check(&(x as f64), &MagneticFluxDensity{T: y as f64}), InverseMagneticFluxDensity{m2_per_Wb: x as f64/y as f64});
1944 assert_eq!(div_check(&(x as f32), &MagneticFluxDensity{T: y as f32}), InverseMagneticFluxDensity{m2_per_Wb: x as f32/y as f32});
1945 assert_eq!(div_check(&(x as i64), &MagneticFluxDensity{T: y as i64}), InverseMagneticFluxDensity{m2_per_Wb: x as i64/y as i64});
1946 assert_eq!(div_check(&(x as i32), &MagneticFluxDensity{T: y as i32}), InverseMagneticFluxDensity{m2_per_Wb: x as i32/y as i32});
1947 assert_eq!(div_check(&(x as f64), &Voltage{V: y as f64}), InverseVoltage{per_V: x as f64/y as f64});
1948 assert_eq!(div_check(&(x as f32), &Voltage{V: y as f32}), InverseVoltage{per_V: x as f32/y as f32});
1949 assert_eq!(div_check(&(x as i64), &Voltage{V: y as i64}), InverseVoltage{per_V: x as i64/y as i64});
1950 assert_eq!(div_check(&(x as i32), &Voltage{V: y as i32}), InverseVoltage{per_V: x as i32/y as i32});
1951 assert_eq!(div_check(&(x as f64), &AreaPerLumen{m2_per_lm: y as f64}), Illuminance{lux: x as f64/y as f64});
1952 assert_eq!(div_check(&(x as f32), &AreaPerLumen{m2_per_lm: y as f32}), Illuminance{lux: x as f32/y as f32});
1953 assert_eq!(div_check(&(x as i64), &AreaPerLumen{m2_per_lm: y as i64}), Illuminance{lux: x as i64/y as i64});
1954 assert_eq!(div_check(&(x as i32), &AreaPerLumen{m2_per_lm: y as i32}), Illuminance{lux: x as i32/y as i32});
1955 assert_eq!(div_check(&(x as f64), &Capacitance{F: y as f64}), Elastance{per_F: x as f64/y as f64});
1956 assert_eq!(div_check(&(x as f32), &Capacitance{F: y as f32}), Elastance{per_F: x as f32/y as f32});
1957 assert_eq!(div_check(&(x as i64), &Capacitance{F: y as i64}), Elastance{per_F: x as i64/y as i64});
1958 assert_eq!(div_check(&(x as i32), &Capacitance{F: y as i32}), Elastance{per_F: x as i32/y as i32});
1959 assert_eq!(div_check(&(x as f64), &Charge{C: y as f64}), InverseCharge{per_C: x as f64/y as f64});
1960 assert_eq!(div_check(&(x as f32), &Charge{C: y as f32}), InverseCharge{per_C: x as f32/y as f32});
1961 assert_eq!(div_check(&(x as i64), &Charge{C: y as i64}), InverseCharge{per_C: x as i64/y as i64});
1962 assert_eq!(div_check(&(x as i32), &Charge{C: y as i32}), InverseCharge{per_C: x as i32/y as i32});
1963 assert_eq!(div_check(&(x as f64), &Elastance{per_F: y as f64}), Capacitance{F: x as f64/y as f64});
1964 assert_eq!(div_check(&(x as f32), &Elastance{per_F: y as f32}), Capacitance{F: x as f32/y as f32});
1965 assert_eq!(div_check(&(x as i64), &Elastance{per_F: y as i64}), Capacitance{F: x as i64/y as i64});
1966 assert_eq!(div_check(&(x as i32), &Elastance{per_F: y as i32}), Capacitance{F: x as i32/y as i32});
1967 assert_eq!(div_check(&(x as f64), &Illuminance{lux: y as f64}), AreaPerLumen{m2_per_lm: x as f64/y as f64});
1968 assert_eq!(div_check(&(x as f32), &Illuminance{lux: y as f32}), AreaPerLumen{m2_per_lm: x as f32/y as f32});
1969 assert_eq!(div_check(&(x as i64), &Illuminance{lux: y as i64}), AreaPerLumen{m2_per_lm: x as i64/y as i64});
1970 assert_eq!(div_check(&(x as i32), &Illuminance{lux: y as i32}), AreaPerLumen{m2_per_lm: x as i32/y as i32});
1971 assert_eq!(div_check(&(x as f64), &Inductance{H: y as f64}), InverseInductance{per_H: x as f64/y as f64});
1972 assert_eq!(div_check(&(x as f32), &Inductance{H: y as f32}), InverseInductance{per_H: x as f32/y as f32});
1973 assert_eq!(div_check(&(x as i64), &Inductance{H: y as i64}), InverseInductance{per_H: x as i64/y as i64});
1974 assert_eq!(div_check(&(x as i32), &Inductance{H: y as i32}), InverseInductance{per_H: x as i32/y as i32});
1975 assert_eq!(div_check(&(x as f64), &InverseCharge{per_C: y as f64}), Charge{C: x as f64/y as f64});
1976 assert_eq!(div_check(&(x as f32), &InverseCharge{per_C: y as f32}), Charge{C: x as f32/y as f32});
1977 assert_eq!(div_check(&(x as i64), &InverseCharge{per_C: y as i64}), Charge{C: x as i64/y as i64});
1978 assert_eq!(div_check(&(x as i32), &InverseCharge{per_C: y as i32}), Charge{C: x as i32/y as i32});
1979 assert_eq!(div_check(&(x as f64), &InverseInductance{per_H: y as f64}), Inductance{H: x as f64/y as f64});
1980 assert_eq!(div_check(&(x as f32), &InverseInductance{per_H: y as f32}), Inductance{H: x as f32/y as f32});
1981 assert_eq!(div_check(&(x as i64), &InverseInductance{per_H: y as i64}), Inductance{H: x as i64/y as i64});
1982 assert_eq!(div_check(&(x as i32), &InverseInductance{per_H: y as i32}), Inductance{H: x as i32/y as i32});
1983 assert_eq!(div_check(&(x as f64), &InverseLuminousFlux{per_lm: y as f64}), LuminousFlux{lm: x as f64/y as f64});
1984 assert_eq!(div_check(&(x as f32), &InverseLuminousFlux{per_lm: y as f32}), LuminousFlux{lm: x as f32/y as f32});
1985 assert_eq!(div_check(&(x as i64), &InverseLuminousFlux{per_lm: y as i64}), LuminousFlux{lm: x as i64/y as i64});
1986 assert_eq!(div_check(&(x as i32), &InverseLuminousFlux{per_lm: y as i32}), LuminousFlux{lm: x as i32/y as i32});
1987 assert_eq!(div_check(&(x as f64), &InverseMagneticFlux{per_Wb: y as f64}), MagneticFlux{Wb: x as f64/y as f64});
1988 assert_eq!(div_check(&(x as f32), &InverseMagneticFlux{per_Wb: y as f32}), MagneticFlux{Wb: x as f32/y as f32});
1989 assert_eq!(div_check(&(x as i64), &InverseMagneticFlux{per_Wb: y as i64}), MagneticFlux{Wb: x as i64/y as i64});
1990 assert_eq!(div_check(&(x as i32), &InverseMagneticFlux{per_Wb: y as i32}), MagneticFlux{Wb: x as i32/y as i32});
1991 assert_eq!(div_check(&(x as f64), &InverseMagneticFluxDensity{m2_per_Wb: y as f64}), MagneticFluxDensity{T: x as f64/y as f64});
1992 assert_eq!(div_check(&(x as f32), &InverseMagneticFluxDensity{m2_per_Wb: y as f32}), MagneticFluxDensity{T: x as f32/y as f32});
1993 assert_eq!(div_check(&(x as i64), &InverseMagneticFluxDensity{m2_per_Wb: y as i64}), MagneticFluxDensity{T: x as i64/y as i64});
1994 assert_eq!(div_check(&(x as i32), &InverseMagneticFluxDensity{m2_per_Wb: y as i32}), MagneticFluxDensity{T: x as i32/y as i32});
1995 assert_eq!(div_check(&(x as f64), &InverseVoltage{per_V: y as f64}), Voltage{V: x as f64/y as f64});
1996 assert_eq!(div_check(&(x as f32), &InverseVoltage{per_V: y as f32}), Voltage{V: x as f32/y as f32});
1997 assert_eq!(div_check(&(x as i64), &InverseVoltage{per_V: y as i64}), Voltage{V: x as i64/y as i64});
1998 assert_eq!(div_check(&(x as i32), &InverseVoltage{per_V: y as i32}), Voltage{V: x as i32/y as i32});
1999 assert_eq!(div_check(&(x as f64), &LuminousFlux{lm: y as f64}), InverseLuminousFlux{per_lm: x as f64/y as f64});
2000 assert_eq!(div_check(&(x as f32), &LuminousFlux{lm: y as f32}), InverseLuminousFlux{per_lm: x as f32/y as f32});
2001 assert_eq!(div_check(&(x as i64), &LuminousFlux{lm: y as i64}), InverseLuminousFlux{per_lm: x as i64/y as i64});
2002 assert_eq!(div_check(&(x as i32), &LuminousFlux{lm: y as i32}), InverseLuminousFlux{per_lm: x as i32/y as i32});
2003 assert_eq!(div_check(&(x as f64), &MagneticFlux{Wb: y as f64}), InverseMagneticFlux{per_Wb: x as f64/y as f64});
2004 assert_eq!(div_check(&(x as f32), &MagneticFlux{Wb: y as f32}), InverseMagneticFlux{per_Wb: x as f32/y as f32});
2005 assert_eq!(div_check(&(x as i64), &MagneticFlux{Wb: y as i64}), InverseMagneticFlux{per_Wb: x as i64/y as i64});
2006 assert_eq!(div_check(&(x as i32), &MagneticFlux{Wb: y as i32}), InverseMagneticFlux{per_Wb: x as i32/y as i32});
2007 assert_eq!(div_check(&(x as f64), &MagneticFluxDensity{T: y as f64}), InverseMagneticFluxDensity{m2_per_Wb: x as f64/y as f64});
2008 assert_eq!(div_check(&(x as f32), &MagneticFluxDensity{T: y as f32}), InverseMagneticFluxDensity{m2_per_Wb: x as f32/y as f32});
2009 assert_eq!(div_check(&(x as i64), &MagneticFluxDensity{T: y as i64}), InverseMagneticFluxDensity{m2_per_Wb: x as i64/y as i64});
2010 assert_eq!(div_check(&(x as i32), &MagneticFluxDensity{T: y as i32}), InverseMagneticFluxDensity{m2_per_Wb: x as i32/y as i32});
2011 assert_eq!(div_check(&(x as f64), &Voltage{V: y as f64}), InverseVoltage{per_V: x as f64/y as f64});
2012 assert_eq!(div_check(&(x as f32), &Voltage{V: y as f32}), InverseVoltage{per_V: x as f32/y as f32});
2013 assert_eq!(div_check(&(x as i64), &Voltage{V: y as i64}), InverseVoltage{per_V: x as i64/y as i64});
2014 assert_eq!(div_check(&(x as i32), &Voltage{V: y as i32}), InverseVoltage{per_V: x as i32/y as i32});
2015 assert_eq!(div_check(&(x as f64), &Angle{rad: y as f64}), InverseAngle{per_rad: x as f64/y as f64});
2016 assert_eq!(div_check(&(x as f32), &Angle{rad: y as f32}), InverseAngle{per_rad: x as f32/y as f32});
2017 assert_eq!(div_check(&(x as i64), &Angle{rad: y as i64}), InverseAngle{per_rad: x as i64/y as i64});
2018 assert_eq!(div_check(&(x as i32), &Angle{rad: y as i32}), InverseAngle{per_rad: x as i32/y as i32});
2019 assert_eq!(div_check(&(x as f64), &Area{m2: y as f64}), InverseArea{per_m2: x as f64/y as f64});
2020 assert_eq!(div_check(&(x as f32), &Area{m2: y as f32}), InverseArea{per_m2: x as f32/y as f32});
2021 assert_eq!(div_check(&(x as i64), &Area{m2: y as i64}), InverseArea{per_m2: x as i64/y as i64});
2022 assert_eq!(div_check(&(x as i32), &Area{m2: y as i32}), InverseArea{per_m2: x as i32/y as i32});
2023 assert_eq!(div_check(&(x as f64), &InverseAngle{per_rad: y as f64}), Angle{rad: x as f64/y as f64});
2024 assert_eq!(div_check(&(x as f32), &InverseAngle{per_rad: y as f32}), Angle{rad: x as f32/y as f32});
2025 assert_eq!(div_check(&(x as i64), &InverseAngle{per_rad: y as i64}), Angle{rad: x as i64/y as i64});
2026 assert_eq!(div_check(&(x as i32), &InverseAngle{per_rad: y as i32}), Angle{rad: x as i32/y as i32});
2027 assert_eq!(div_check(&(x as f64), &InverseArea{per_m2: y as f64}), Area{m2: x as f64/y as f64});
2028 assert_eq!(div_check(&(x as f32), &InverseArea{per_m2: y as f32}), Area{m2: x as f32/y as f32});
2029 assert_eq!(div_check(&(x as i64), &InverseArea{per_m2: y as i64}), Area{m2: x as i64/y as i64});
2030 assert_eq!(div_check(&(x as i32), &InverseArea{per_m2: y as i32}), Area{m2: x as i32/y as i32});
2031 assert_eq!(div_check(&(x as f64), &InverseSolidAngle{per_sr: y as f64}), SolidAngle{sr: x as f64/y as f64});
2032 assert_eq!(div_check(&(x as f32), &InverseSolidAngle{per_sr: y as f32}), SolidAngle{sr: x as f32/y as f32});
2033 assert_eq!(div_check(&(x as i64), &InverseSolidAngle{per_sr: y as i64}), SolidAngle{sr: x as i64/y as i64});
2034 assert_eq!(div_check(&(x as i32), &InverseSolidAngle{per_sr: y as i32}), SolidAngle{sr: x as i32/y as i32});
2035 assert_eq!(div_check(&(x as f64), &InverseVolume{per_m3: y as f64}), Volume{m3: x as f64/y as f64});
2036 assert_eq!(div_check(&(x as f32), &InverseVolume{per_m3: y as f32}), Volume{m3: x as f32/y as f32});
2037 assert_eq!(div_check(&(x as i64), &InverseVolume{per_m3: y as i64}), Volume{m3: x as i64/y as i64});
2038 assert_eq!(div_check(&(x as i32), &InverseVolume{per_m3: y as i32}), Volume{m3: x as i32/y as i32});
2039 assert_eq!(div_check(&(x as f64), &SolidAngle{sr: y as f64}), InverseSolidAngle{per_sr: x as f64/y as f64});
2040 assert_eq!(div_check(&(x as f32), &SolidAngle{sr: y as f32}), InverseSolidAngle{per_sr: x as f32/y as f32});
2041 assert_eq!(div_check(&(x as i64), &SolidAngle{sr: y as i64}), InverseSolidAngle{per_sr: x as i64/y as i64});
2042 assert_eq!(div_check(&(x as i32), &SolidAngle{sr: y as i32}), InverseSolidAngle{per_sr: x as i32/y as i32});
2043 assert_eq!(div_check(&(x as f64), &Volume{m3: y as f64}), InverseVolume{per_m3: x as f64/y as f64});
2044 assert_eq!(div_check(&(x as f32), &Volume{m3: y as f32}), InverseVolume{per_m3: x as f32/y as f32});
2045 assert_eq!(div_check(&(x as i64), &Volume{m3: y as i64}), InverseVolume{per_m3: x as i64/y as i64});
2046 assert_eq!(div_check(&(x as i32), &Volume{m3: y as i32}), InverseVolume{per_m3: x as i32/y as i32});
2047 assert_eq!(div_check(&(x as f64), &Angle{rad: y as f64}), InverseAngle{per_rad: x as f64/y as f64});
2048 assert_eq!(div_check(&(x as f32), &Angle{rad: y as f32}), InverseAngle{per_rad: x as f32/y as f32});
2049 assert_eq!(div_check(&(x as i64), &Angle{rad: y as i64}), InverseAngle{per_rad: x as i64/y as i64});
2050 assert_eq!(div_check(&(x as i32), &Angle{rad: y as i32}), InverseAngle{per_rad: x as i32/y as i32});
2051 assert_eq!(div_check(&(x as f64), &Area{m2: y as f64}), InverseArea{per_m2: x as f64/y as f64});
2052 assert_eq!(div_check(&(x as f32), &Area{m2: y as f32}), InverseArea{per_m2: x as f32/y as f32});
2053 assert_eq!(div_check(&(x as i64), &Area{m2: y as i64}), InverseArea{per_m2: x as i64/y as i64});
2054 assert_eq!(div_check(&(x as i32), &Area{m2: y as i32}), InverseArea{per_m2: x as i32/y as i32});
2055 assert_eq!(div_check(&(x as f64), &InverseAngle{per_rad: y as f64}), Angle{rad: x as f64/y as f64});
2056 assert_eq!(div_check(&(x as f32), &InverseAngle{per_rad: y as f32}), Angle{rad: x as f32/y as f32});
2057 assert_eq!(div_check(&(x as i64), &InverseAngle{per_rad: y as i64}), Angle{rad: x as i64/y as i64});
2058 assert_eq!(div_check(&(x as i32), &InverseAngle{per_rad: y as i32}), Angle{rad: x as i32/y as i32});
2059 assert_eq!(div_check(&(x as f64), &InverseArea{per_m2: y as f64}), Area{m2: x as f64/y as f64});
2060 assert_eq!(div_check(&(x as f32), &InverseArea{per_m2: y as f32}), Area{m2: x as f32/y as f32});
2061 assert_eq!(div_check(&(x as i64), &InverseArea{per_m2: y as i64}), Area{m2: x as i64/y as i64});
2062 assert_eq!(div_check(&(x as i32), &InverseArea{per_m2: y as i32}), Area{m2: x as i32/y as i32});
2063 assert_eq!(div_check(&(x as f64), &InverseSolidAngle{per_sr: y as f64}), SolidAngle{sr: x as f64/y as f64});
2064 assert_eq!(div_check(&(x as f32), &InverseSolidAngle{per_sr: y as f32}), SolidAngle{sr: x as f32/y as f32});
2065 assert_eq!(div_check(&(x as i64), &InverseSolidAngle{per_sr: y as i64}), SolidAngle{sr: x as i64/y as i64});
2066 assert_eq!(div_check(&(x as i32), &InverseSolidAngle{per_sr: y as i32}), SolidAngle{sr: x as i32/y as i32});
2067 assert_eq!(div_check(&(x as f64), &InverseVolume{per_m3: y as f64}), Volume{m3: x as f64/y as f64});
2068 assert_eq!(div_check(&(x as f32), &InverseVolume{per_m3: y as f32}), Volume{m3: x as f32/y as f32});
2069 assert_eq!(div_check(&(x as i64), &InverseVolume{per_m3: y as i64}), Volume{m3: x as i64/y as i64});
2070 assert_eq!(div_check(&(x as i32), &InverseVolume{per_m3: y as i32}), Volume{m3: x as i32/y as i32});
2071 assert_eq!(div_check(&(x as f64), &SolidAngle{sr: y as f64}), InverseSolidAngle{per_sr: x as f64/y as f64});
2072 assert_eq!(div_check(&(x as f32), &SolidAngle{sr: y as f32}), InverseSolidAngle{per_sr: x as f32/y as f32});
2073 assert_eq!(div_check(&(x as i64), &SolidAngle{sr: y as i64}), InverseSolidAngle{per_sr: x as i64/y as i64});
2074 assert_eq!(div_check(&(x as i32), &SolidAngle{sr: y as i32}), InverseSolidAngle{per_sr: x as i32/y as i32});
2075 assert_eq!(div_check(&(x as f64), &Volume{m3: y as f64}), InverseVolume{per_m3: x as f64/y as f64});
2076 assert_eq!(div_check(&(x as f32), &Volume{m3: y as f32}), InverseVolume{per_m3: x as f32/y as f32});
2077 assert_eq!(div_check(&(x as i64), &Volume{m3: y as i64}), InverseVolume{per_m3: x as i64/y as i64});
2078 assert_eq!(div_check(&(x as i32), &Volume{m3: y as i32}), InverseVolume{per_m3: x as i32/y as i32});
2079 assert_eq!(div_check(&(x as f64), &Acceleration{mps2: y as f64}), InverseAcceleration{s2pm: x as f64/y as f64});
2080 assert_eq!(div_check(&(x as f32), &Acceleration{mps2: y as f32}), InverseAcceleration{s2pm: x as f32/y as f32});
2081 assert_eq!(div_check(&(x as i64), &Acceleration{mps2: y as i64}), InverseAcceleration{s2pm: x as i64/y as i64});
2082 assert_eq!(div_check(&(x as i32), &Acceleration{mps2: y as i32}), InverseAcceleration{s2pm: x as i32/y as i32});
2083 assert_eq!(div_check(&(x as f64), &AngularAcceleration{radps2: y as f64}), InverseAngularAcceleration{s2prad: x as f64/y as f64});
2084 assert_eq!(div_check(&(x as f32), &AngularAcceleration{radps2: y as f32}), InverseAngularAcceleration{s2prad: x as f32/y as f32});
2085 assert_eq!(div_check(&(x as i64), &AngularAcceleration{radps2: y as i64}), InverseAngularAcceleration{s2prad: x as i64/y as i64});
2086 assert_eq!(div_check(&(x as i32), &AngularAcceleration{radps2: y as i32}), InverseAngularAcceleration{s2prad: x as i32/y as i32});
2087 assert_eq!(div_check(&(x as f64), &AngularMomentum{kgm2radps: y as f64}), InverseAngularMomentum{s_per_kgm2rad: x as f64/y as f64});
2088 assert_eq!(div_check(&(x as f32), &AngularMomentum{kgm2radps: y as f32}), InverseAngularMomentum{s_per_kgm2rad: x as f32/y as f32});
2089 assert_eq!(div_check(&(x as i64), &AngularMomentum{kgm2radps: y as i64}), InverseAngularMomentum{s_per_kgm2rad: x as i64/y as i64});
2090 assert_eq!(div_check(&(x as i32), &AngularMomentum{kgm2radps: y as i32}), InverseAngularMomentum{s_per_kgm2rad: x as i32/y as i32});
2091 assert_eq!(div_check(&(x as f64), &AngularVelocity{radps: y as f64}), InverseAngularVelocity{s_per_rad: x as f64/y as f64});
2092 assert_eq!(div_check(&(x as f32), &AngularVelocity{radps: y as f32}), InverseAngularVelocity{s_per_rad: x as f32/y as f32});
2093 assert_eq!(div_check(&(x as i64), &AngularVelocity{radps: y as i64}), InverseAngularVelocity{s_per_rad: x as i64/y as i64});
2094 assert_eq!(div_check(&(x as i32), &AngularVelocity{radps: y as i32}), InverseAngularVelocity{s_per_rad: x as i32/y as i32});
2095 assert_eq!(div_check(&(x as f64), &AreaDensity{kgpm2: y as f64}), AreaPerMass{m2_per_kg: x as f64/y as f64});
2096 assert_eq!(div_check(&(x as f32), &AreaDensity{kgpm2: y as f32}), AreaPerMass{m2_per_kg: x as f32/y as f32});
2097 assert_eq!(div_check(&(x as i64), &AreaDensity{kgpm2: y as i64}), AreaPerMass{m2_per_kg: x as i64/y as i64});
2098 assert_eq!(div_check(&(x as i32), &AreaDensity{kgpm2: y as i32}), AreaPerMass{m2_per_kg: x as i32/y as i32});
2099 assert_eq!(div_check(&(x as f64), &AreaPerMass{m2_per_kg: y as f64}), AreaDensity{kgpm2: x as f64/y as f64});
2100 assert_eq!(div_check(&(x as f32), &AreaPerMass{m2_per_kg: y as f32}), AreaDensity{kgpm2: x as f32/y as f32});
2101 assert_eq!(div_check(&(x as i64), &AreaPerMass{m2_per_kg: y as i64}), AreaDensity{kgpm2: x as i64/y as i64});
2102 assert_eq!(div_check(&(x as i32), &AreaPerMass{m2_per_kg: y as i32}), AreaDensity{kgpm2: x as i32/y as i32});
2103 assert_eq!(div_check(&(x as f64), &Density{kgpm3: y as f64}), VolumePerMass{m3_per_kg: x as f64/y as f64});
2104 assert_eq!(div_check(&(x as f32), &Density{kgpm3: y as f32}), VolumePerMass{m3_per_kg: x as f32/y as f32});
2105 assert_eq!(div_check(&(x as i64), &Density{kgpm3: y as i64}), VolumePerMass{m3_per_kg: x as i64/y as i64});
2106 assert_eq!(div_check(&(x as i32), &Density{kgpm3: y as i32}), VolumePerMass{m3_per_kg: x as i32/y as i32});
2107 assert_eq!(div_check(&(x as f64), &Energy{J: y as f64}), InverseEnergy{per_J: x as f64/y as f64});
2108 assert_eq!(div_check(&(x as f32), &Energy{J: y as f32}), InverseEnergy{per_J: x as f32/y as f32});
2109 assert_eq!(div_check(&(x as i64), &Energy{J: y as i64}), InverseEnergy{per_J: x as i64/y as i64});
2110 assert_eq!(div_check(&(x as i32), &Energy{J: y as i32}), InverseEnergy{per_J: x as i32/y as i32});
2111 assert_eq!(div_check(&(x as f64), &Force{N: y as f64}), InverseForce{per_N: x as f64/y as f64});
2112 assert_eq!(div_check(&(x as f32), &Force{N: y as f32}), InverseForce{per_N: x as f32/y as f32});
2113 assert_eq!(div_check(&(x as i64), &Force{N: y as i64}), InverseForce{per_N: x as i64/y as i64});
2114 assert_eq!(div_check(&(x as i32), &Force{N: y as i32}), InverseForce{per_N: x as i32/y as i32});
2115 assert_eq!(div_check(&(x as f64), &InverseAcceleration{s2pm: y as f64}), Acceleration{mps2: x as f64/y as f64});
2116 assert_eq!(div_check(&(x as f32), &InverseAcceleration{s2pm: y as f32}), Acceleration{mps2: x as f32/y as f32});
2117 assert_eq!(div_check(&(x as i64), &InverseAcceleration{s2pm: y as i64}), Acceleration{mps2: x as i64/y as i64});
2118 assert_eq!(div_check(&(x as i32), &InverseAcceleration{s2pm: y as i32}), Acceleration{mps2: x as i32/y as i32});
2119 assert_eq!(div_check(&(x as f64), &InverseAngularAcceleration{s2prad: y as f64}), AngularAcceleration{radps2: x as f64/y as f64});
2120 assert_eq!(div_check(&(x as f32), &InverseAngularAcceleration{s2prad: y as f32}), AngularAcceleration{radps2: x as f32/y as f32});
2121 assert_eq!(div_check(&(x as i64), &InverseAngularAcceleration{s2prad: y as i64}), AngularAcceleration{radps2: x as i64/y as i64});
2122 assert_eq!(div_check(&(x as i32), &InverseAngularAcceleration{s2prad: y as i32}), AngularAcceleration{radps2: x as i32/y as i32});
2123 assert_eq!(div_check(&(x as f64), &InverseAngularMomentum{s_per_kgm2rad: y as f64}), AngularMomentum{kgm2radps: x as f64/y as f64});
2124 assert_eq!(div_check(&(x as f32), &InverseAngularMomentum{s_per_kgm2rad: y as f32}), AngularMomentum{kgm2radps: x as f32/y as f32});
2125 assert_eq!(div_check(&(x as i64), &InverseAngularMomentum{s_per_kgm2rad: y as i64}), AngularMomentum{kgm2radps: x as i64/y as i64});
2126 assert_eq!(div_check(&(x as i32), &InverseAngularMomentum{s_per_kgm2rad: y as i32}), AngularMomentum{kgm2radps: x as i32/y as i32});
2127 assert_eq!(div_check(&(x as f64), &InverseAngularVelocity{s_per_rad: y as f64}), AngularVelocity{radps: x as f64/y as f64});
2128 assert_eq!(div_check(&(x as f32), &InverseAngularVelocity{s_per_rad: y as f32}), AngularVelocity{radps: x as f32/y as f32});
2129 assert_eq!(div_check(&(x as i64), &InverseAngularVelocity{s_per_rad: y as i64}), AngularVelocity{radps: x as i64/y as i64});
2130 assert_eq!(div_check(&(x as i32), &InverseAngularVelocity{s_per_rad: y as i32}), AngularVelocity{radps: x as i32/y as i32});
2131 assert_eq!(div_check(&(x as f64), &InverseEnergy{per_J: y as f64}), Energy{J: x as f64/y as f64});
2132 assert_eq!(div_check(&(x as f32), &InverseEnergy{per_J: y as f32}), Energy{J: x as f32/y as f32});
2133 assert_eq!(div_check(&(x as i64), &InverseEnergy{per_J: y as i64}), Energy{J: x as i64/y as i64});
2134 assert_eq!(div_check(&(x as i32), &InverseEnergy{per_J: y as i32}), Energy{J: x as i32/y as i32});
2135 assert_eq!(div_check(&(x as f64), &InverseForce{per_N: y as f64}), Force{N: x as f64/y as f64});
2136 assert_eq!(div_check(&(x as f32), &InverseForce{per_N: y as f32}), Force{N: x as f32/y as f32});
2137 assert_eq!(div_check(&(x as i64), &InverseForce{per_N: y as i64}), Force{N: x as i64/y as i64});
2138 assert_eq!(div_check(&(x as i32), &InverseForce{per_N: y as i32}), Force{N: x as i32/y as i32});
2139 assert_eq!(div_check(&(x as f64), &InverseMomentum{s_per_kgm: y as f64}), Momentum{kgmps: x as f64/y as f64});
2140 assert_eq!(div_check(&(x as f32), &InverseMomentum{s_per_kgm: y as f32}), Momentum{kgmps: x as f32/y as f32});
2141 assert_eq!(div_check(&(x as i64), &InverseMomentum{s_per_kgm: y as i64}), Momentum{kgmps: x as i64/y as i64});
2142 assert_eq!(div_check(&(x as i32), &InverseMomentum{s_per_kgm: y as i32}), Momentum{kgmps: x as i32/y as i32});
2143 assert_eq!(div_check(&(x as f64), &InversePower{per_W: y as f64}), Power{W: x as f64/y as f64});
2144 assert_eq!(div_check(&(x as f32), &InversePower{per_W: y as f32}), Power{W: x as f32/y as f32});
2145 assert_eq!(div_check(&(x as i64), &InversePower{per_W: y as i64}), Power{W: x as i64/y as i64});
2146 assert_eq!(div_check(&(x as i32), &InversePower{per_W: y as i32}), Power{W: x as i32/y as i32});
2147 assert_eq!(div_check(&(x as f64), &InversePressure{per_Pa: y as f64}), Pressure{Pa: x as f64/y as f64});
2148 assert_eq!(div_check(&(x as f32), &InversePressure{per_Pa: y as f32}), Pressure{Pa: x as f32/y as f32});
2149 assert_eq!(div_check(&(x as i64), &InversePressure{per_Pa: y as i64}), Pressure{Pa: x as i64/y as i64});
2150 assert_eq!(div_check(&(x as i32), &InversePressure{per_Pa: y as i32}), Pressure{Pa: x as i32/y as i32});
2151 assert_eq!(div_check(&(x as f64), &InverseTorque{per_Nm: y as f64}), Energy{J: x as f64/y as f64});
2152 assert_eq!(div_check(&(x as f32), &InverseTorque{per_Nm: y as f32}), Energy{J: x as f32/y as f32});
2153 assert_eq!(div_check(&(x as i64), &InverseTorque{per_Nm: y as i64}), Energy{J: x as i64/y as i64});
2154 assert_eq!(div_check(&(x as i32), &InverseTorque{per_Nm: y as i32}), Energy{J: x as i32/y as i32});
2155 assert_eq!(div_check(&(x as f64), &Momentum{kgmps: y as f64}), InverseMomentum{s_per_kgm: x as f64/y as f64});
2156 assert_eq!(div_check(&(x as f32), &Momentum{kgmps: y as f32}), InverseMomentum{s_per_kgm: x as f32/y as f32});
2157 assert_eq!(div_check(&(x as i64), &Momentum{kgmps: y as i64}), InverseMomentum{s_per_kgm: x as i64/y as i64});
2158 assert_eq!(div_check(&(x as i32), &Momentum{kgmps: y as i32}), InverseMomentum{s_per_kgm: x as i32/y as i32});
2159 assert_eq!(div_check(&(x as f64), &Power{W: y as f64}), InversePower{per_W: x as f64/y as f64});
2160 assert_eq!(div_check(&(x as f32), &Power{W: y as f32}), InversePower{per_W: x as f32/y as f32});
2161 assert_eq!(div_check(&(x as i64), &Power{W: y as i64}), InversePower{per_W: x as i64/y as i64});
2162 assert_eq!(div_check(&(x as i32), &Power{W: y as i32}), InversePower{per_W: x as i32/y as i32});
2163 assert_eq!(div_check(&(x as f64), &Pressure{Pa: y as f64}), InversePressure{per_Pa: x as f64/y as f64});
2164 assert_eq!(div_check(&(x as f32), &Pressure{Pa: y as f32}), InversePressure{per_Pa: x as f32/y as f32});
2165 assert_eq!(div_check(&(x as i64), &Pressure{Pa: y as i64}), InversePressure{per_Pa: x as i64/y as i64});
2166 assert_eq!(div_check(&(x as i32), &Pressure{Pa: y as i32}), InversePressure{per_Pa: x as i32/y as i32});
2167 assert_eq!(div_check(&(x as f64), &TimePerDistance{spm: y as f64}), Velocity{mps: x as f64/y as f64});
2168 assert_eq!(div_check(&(x as f32), &TimePerDistance{spm: y as f32}), Velocity{mps: x as f32/y as f32});
2169 assert_eq!(div_check(&(x as i64), &TimePerDistance{spm: y as i64}), Velocity{mps: x as i64/y as i64});
2170 assert_eq!(div_check(&(x as i32), &TimePerDistance{spm: y as i32}), Velocity{mps: x as i32/y as i32});
2171 assert_eq!(div_check(&(x as f64), &Torque{Nm: y as f64}), InverseEnergy{per_J: x as f64/y as f64});
2172 assert_eq!(div_check(&(x as f32), &Torque{Nm: y as f32}), InverseEnergy{per_J: x as f32/y as f32});
2173 assert_eq!(div_check(&(x as i64), &Torque{Nm: y as i64}), InverseEnergy{per_J: x as i64/y as i64});
2174 assert_eq!(div_check(&(x as i32), &Torque{Nm: y as i32}), InverseEnergy{per_J: x as i32/y as i32});
2175 assert_eq!(div_check(&(x as f64), &Velocity{mps: y as f64}), TimePerDistance{spm: x as f64/y as f64});
2176 assert_eq!(div_check(&(x as f32), &Velocity{mps: y as f32}), TimePerDistance{spm: x as f32/y as f32});
2177 assert_eq!(div_check(&(x as i64), &Velocity{mps: y as i64}), TimePerDistance{spm: x as i64/y as i64});
2178 assert_eq!(div_check(&(x as i32), &Velocity{mps: y as i32}), TimePerDistance{spm: x as i32/y as i32});
2179 assert_eq!(div_check(&(x as f64), &VolumePerMass{m3_per_kg: y as f64}), Density{kgpm3: x as f64/y as f64});
2180 assert_eq!(div_check(&(x as f32), &VolumePerMass{m3_per_kg: y as f32}), Density{kgpm3: x as f32/y as f32});
2181 assert_eq!(div_check(&(x as i64), &VolumePerMass{m3_per_kg: y as i64}), Density{kgpm3: x as i64/y as i64});
2182 assert_eq!(div_check(&(x as i32), &VolumePerMass{m3_per_kg: y as i32}), Density{kgpm3: x as i32/y as i32});
2183 assert_eq!(div_check(&(x as f64), &Acceleration{mps2: y as f64}), InverseAcceleration{s2pm: x as f64/y as f64});
2184 assert_eq!(div_check(&(x as f32), &Acceleration{mps2: y as f32}), InverseAcceleration{s2pm: x as f32/y as f32});
2185 assert_eq!(div_check(&(x as i64), &Acceleration{mps2: y as i64}), InverseAcceleration{s2pm: x as i64/y as i64});
2186 assert_eq!(div_check(&(x as i32), &Acceleration{mps2: y as i32}), InverseAcceleration{s2pm: x as i32/y as i32});
2187 assert_eq!(div_check(&(x as f64), &AngularAcceleration{radps2: y as f64}), InverseAngularAcceleration{s2prad: x as f64/y as f64});
2188 assert_eq!(div_check(&(x as f32), &AngularAcceleration{radps2: y as f32}), InverseAngularAcceleration{s2prad: x as f32/y as f32});
2189 assert_eq!(div_check(&(x as i64), &AngularAcceleration{radps2: y as i64}), InverseAngularAcceleration{s2prad: x as i64/y as i64});
2190 assert_eq!(div_check(&(x as i32), &AngularAcceleration{radps2: y as i32}), InverseAngularAcceleration{s2prad: x as i32/y as i32});
2191 assert_eq!(div_check(&(x as f64), &AngularMomentum{kgm2radps: y as f64}), InverseAngularMomentum{s_per_kgm2rad: x as f64/y as f64});
2192 assert_eq!(div_check(&(x as f32), &AngularMomentum{kgm2radps: y as f32}), InverseAngularMomentum{s_per_kgm2rad: x as f32/y as f32});
2193 assert_eq!(div_check(&(x as i64), &AngularMomentum{kgm2radps: y as i64}), InverseAngularMomentum{s_per_kgm2rad: x as i64/y as i64});
2194 assert_eq!(div_check(&(x as i32), &AngularMomentum{kgm2radps: y as i32}), InverseAngularMomentum{s_per_kgm2rad: x as i32/y as i32});
2195 assert_eq!(div_check(&(x as f64), &AngularVelocity{radps: y as f64}), InverseAngularVelocity{s_per_rad: x as f64/y as f64});
2196 assert_eq!(div_check(&(x as f32), &AngularVelocity{radps: y as f32}), InverseAngularVelocity{s_per_rad: x as f32/y as f32});
2197 assert_eq!(div_check(&(x as i64), &AngularVelocity{radps: y as i64}), InverseAngularVelocity{s_per_rad: x as i64/y as i64});
2198 assert_eq!(div_check(&(x as i32), &AngularVelocity{radps: y as i32}), InverseAngularVelocity{s_per_rad: x as i32/y as i32});
2199 assert_eq!(div_check(&(x as f64), &AreaDensity{kgpm2: y as f64}), AreaPerMass{m2_per_kg: x as f64/y as f64});
2200 assert_eq!(div_check(&(x as f32), &AreaDensity{kgpm2: y as f32}), AreaPerMass{m2_per_kg: x as f32/y as f32});
2201 assert_eq!(div_check(&(x as i64), &AreaDensity{kgpm2: y as i64}), AreaPerMass{m2_per_kg: x as i64/y as i64});
2202 assert_eq!(div_check(&(x as i32), &AreaDensity{kgpm2: y as i32}), AreaPerMass{m2_per_kg: x as i32/y as i32});
2203 assert_eq!(div_check(&(x as f64), &AreaPerMass{m2_per_kg: y as f64}), AreaDensity{kgpm2: x as f64/y as f64});
2204 assert_eq!(div_check(&(x as f32), &AreaPerMass{m2_per_kg: y as f32}), AreaDensity{kgpm2: x as f32/y as f32});
2205 assert_eq!(div_check(&(x as i64), &AreaPerMass{m2_per_kg: y as i64}), AreaDensity{kgpm2: x as i64/y as i64});
2206 assert_eq!(div_check(&(x as i32), &AreaPerMass{m2_per_kg: y as i32}), AreaDensity{kgpm2: x as i32/y as i32});
2207 assert_eq!(div_check(&(x as f64), &Density{kgpm3: y as f64}), VolumePerMass{m3_per_kg: x as f64/y as f64});
2208 assert_eq!(div_check(&(x as f32), &Density{kgpm3: y as f32}), VolumePerMass{m3_per_kg: x as f32/y as f32});
2209 assert_eq!(div_check(&(x as i64), &Density{kgpm3: y as i64}), VolumePerMass{m3_per_kg: x as i64/y as i64});
2210 assert_eq!(div_check(&(x as i32), &Density{kgpm3: y as i32}), VolumePerMass{m3_per_kg: x as i32/y as i32});
2211 assert_eq!(div_check(&(x as f64), &Energy{J: y as f64}), InverseEnergy{per_J: x as f64/y as f64});
2212 assert_eq!(div_check(&(x as f32), &Energy{J: y as f32}), InverseEnergy{per_J: x as f32/y as f32});
2213 assert_eq!(div_check(&(x as i64), &Energy{J: y as i64}), InverseEnergy{per_J: x as i64/y as i64});
2214 assert_eq!(div_check(&(x as i32), &Energy{J: y as i32}), InverseEnergy{per_J: x as i32/y as i32});
2215 assert_eq!(div_check(&(x as f64), &Force{N: y as f64}), InverseForce{per_N: x as f64/y as f64});
2216 assert_eq!(div_check(&(x as f32), &Force{N: y as f32}), InverseForce{per_N: x as f32/y as f32});
2217 assert_eq!(div_check(&(x as i64), &Force{N: y as i64}), InverseForce{per_N: x as i64/y as i64});
2218 assert_eq!(div_check(&(x as i32), &Force{N: y as i32}), InverseForce{per_N: x as i32/y as i32});
2219 assert_eq!(div_check(&(x as f64), &InverseAcceleration{s2pm: y as f64}), Acceleration{mps2: x as f64/y as f64});
2220 assert_eq!(div_check(&(x as f32), &InverseAcceleration{s2pm: y as f32}), Acceleration{mps2: x as f32/y as f32});
2221 assert_eq!(div_check(&(x as i64), &InverseAcceleration{s2pm: y as i64}), Acceleration{mps2: x as i64/y as i64});
2222 assert_eq!(div_check(&(x as i32), &InverseAcceleration{s2pm: y as i32}), Acceleration{mps2: x as i32/y as i32});
2223 assert_eq!(div_check(&(x as f64), &InverseAngularAcceleration{s2prad: y as f64}), AngularAcceleration{radps2: x as f64/y as f64});
2224 assert_eq!(div_check(&(x as f32), &InverseAngularAcceleration{s2prad: y as f32}), AngularAcceleration{radps2: x as f32/y as f32});
2225 assert_eq!(div_check(&(x as i64), &InverseAngularAcceleration{s2prad: y as i64}), AngularAcceleration{radps2: x as i64/y as i64});
2226 assert_eq!(div_check(&(x as i32), &InverseAngularAcceleration{s2prad: y as i32}), AngularAcceleration{radps2: x as i32/y as i32});
2227 assert_eq!(div_check(&(x as f64), &InverseAngularMomentum{s_per_kgm2rad: y as f64}), AngularMomentum{kgm2radps: x as f64/y as f64});
2228 assert_eq!(div_check(&(x as f32), &InverseAngularMomentum{s_per_kgm2rad: y as f32}), AngularMomentum{kgm2radps: x as f32/y as f32});
2229 assert_eq!(div_check(&(x as i64), &InverseAngularMomentum{s_per_kgm2rad: y as i64}), AngularMomentum{kgm2radps: x as i64/y as i64});
2230 assert_eq!(div_check(&(x as i32), &InverseAngularMomentum{s_per_kgm2rad: y as i32}), AngularMomentum{kgm2radps: x as i32/y as i32});
2231 assert_eq!(div_check(&(x as f64), &InverseAngularVelocity{s_per_rad: y as f64}), AngularVelocity{radps: x as f64/y as f64});
2232 assert_eq!(div_check(&(x as f32), &InverseAngularVelocity{s_per_rad: y as f32}), AngularVelocity{radps: x as f32/y as f32});
2233 assert_eq!(div_check(&(x as i64), &InverseAngularVelocity{s_per_rad: y as i64}), AngularVelocity{radps: x as i64/y as i64});
2234 assert_eq!(div_check(&(x as i32), &InverseAngularVelocity{s_per_rad: y as i32}), AngularVelocity{radps: x as i32/y as i32});
2235 assert_eq!(div_check(&(x as f64), &InverseEnergy{per_J: y as f64}), Energy{J: x as f64/y as f64});
2236 assert_eq!(div_check(&(x as f32), &InverseEnergy{per_J: y as f32}), Energy{J: x as f32/y as f32});
2237 assert_eq!(div_check(&(x as i64), &InverseEnergy{per_J: y as i64}), Energy{J: x as i64/y as i64});
2238 assert_eq!(div_check(&(x as i32), &InverseEnergy{per_J: y as i32}), Energy{J: x as i32/y as i32});
2239 assert_eq!(div_check(&(x as f64), &InverseForce{per_N: y as f64}), Force{N: x as f64/y as f64});
2240 assert_eq!(div_check(&(x as f32), &InverseForce{per_N: y as f32}), Force{N: x as f32/y as f32});
2241 assert_eq!(div_check(&(x as i64), &InverseForce{per_N: y as i64}), Force{N: x as i64/y as i64});
2242 assert_eq!(div_check(&(x as i32), &InverseForce{per_N: y as i32}), Force{N: x as i32/y as i32});
2243 assert_eq!(div_check(&(x as f64), &InverseMomentum{s_per_kgm: y as f64}), Momentum{kgmps: x as f64/y as f64});
2244 assert_eq!(div_check(&(x as f32), &InverseMomentum{s_per_kgm: y as f32}), Momentum{kgmps: x as f32/y as f32});
2245 assert_eq!(div_check(&(x as i64), &InverseMomentum{s_per_kgm: y as i64}), Momentum{kgmps: x as i64/y as i64});
2246 assert_eq!(div_check(&(x as i32), &InverseMomentum{s_per_kgm: y as i32}), Momentum{kgmps: x as i32/y as i32});
2247 assert_eq!(div_check(&(x as f64), &InversePower{per_W: y as f64}), Power{W: x as f64/y as f64});
2248 assert_eq!(div_check(&(x as f32), &InversePower{per_W: y as f32}), Power{W: x as f32/y as f32});
2249 assert_eq!(div_check(&(x as i64), &InversePower{per_W: y as i64}), Power{W: x as i64/y as i64});
2250 assert_eq!(div_check(&(x as i32), &InversePower{per_W: y as i32}), Power{W: x as i32/y as i32});
2251 assert_eq!(div_check(&(x as f64), &InversePressure{per_Pa: y as f64}), Pressure{Pa: x as f64/y as f64});
2252 assert_eq!(div_check(&(x as f32), &InversePressure{per_Pa: y as f32}), Pressure{Pa: x as f32/y as f32});
2253 assert_eq!(div_check(&(x as i64), &InversePressure{per_Pa: y as i64}), Pressure{Pa: x as i64/y as i64});
2254 assert_eq!(div_check(&(x as i32), &InversePressure{per_Pa: y as i32}), Pressure{Pa: x as i32/y as i32});
2255 assert_eq!(div_check(&(x as f64), &InverseTorque{per_Nm: y as f64}), Energy{J: x as f64/y as f64});
2256 assert_eq!(div_check(&(x as f32), &InverseTorque{per_Nm: y as f32}), Energy{J: x as f32/y as f32});
2257 assert_eq!(div_check(&(x as i64), &InverseTorque{per_Nm: y as i64}), Energy{J: x as i64/y as i64});
2258 assert_eq!(div_check(&(x as i32), &InverseTorque{per_Nm: y as i32}), Energy{J: x as i32/y as i32});
2259 assert_eq!(div_check(&(x as f64), &Momentum{kgmps: y as f64}), InverseMomentum{s_per_kgm: x as f64/y as f64});
2260 assert_eq!(div_check(&(x as f32), &Momentum{kgmps: y as f32}), InverseMomentum{s_per_kgm: x as f32/y as f32});
2261 assert_eq!(div_check(&(x as i64), &Momentum{kgmps: y as i64}), InverseMomentum{s_per_kgm: x as i64/y as i64});
2262 assert_eq!(div_check(&(x as i32), &Momentum{kgmps: y as i32}), InverseMomentum{s_per_kgm: x as i32/y as i32});
2263 assert_eq!(div_check(&(x as f64), &Power{W: y as f64}), InversePower{per_W: x as f64/y as f64});
2264 assert_eq!(div_check(&(x as f32), &Power{W: y as f32}), InversePower{per_W: x as f32/y as f32});
2265 assert_eq!(div_check(&(x as i64), &Power{W: y as i64}), InversePower{per_W: x as i64/y as i64});
2266 assert_eq!(div_check(&(x as i32), &Power{W: y as i32}), InversePower{per_W: x as i32/y as i32});
2267 assert_eq!(div_check(&(x as f64), &Pressure{Pa: y as f64}), InversePressure{per_Pa: x as f64/y as f64});
2268 assert_eq!(div_check(&(x as f32), &Pressure{Pa: y as f32}), InversePressure{per_Pa: x as f32/y as f32});
2269 assert_eq!(div_check(&(x as i64), &Pressure{Pa: y as i64}), InversePressure{per_Pa: x as i64/y as i64});
2270 assert_eq!(div_check(&(x as i32), &Pressure{Pa: y as i32}), InversePressure{per_Pa: x as i32/y as i32});
2271 assert_eq!(div_check(&(x as f64), &TimePerDistance{spm: y as f64}), Velocity{mps: x as f64/y as f64});
2272 assert_eq!(div_check(&(x as f32), &TimePerDistance{spm: y as f32}), Velocity{mps: x as f32/y as f32});
2273 assert_eq!(div_check(&(x as i64), &TimePerDistance{spm: y as i64}), Velocity{mps: x as i64/y as i64});
2274 assert_eq!(div_check(&(x as i32), &TimePerDistance{spm: y as i32}), Velocity{mps: x as i32/y as i32});
2275 assert_eq!(div_check(&(x as f64), &Torque{Nm: y as f64}), InverseEnergy{per_J: x as f64/y as f64});
2276 assert_eq!(div_check(&(x as f32), &Torque{Nm: y as f32}), InverseEnergy{per_J: x as f32/y as f32});
2277 assert_eq!(div_check(&(x as i64), &Torque{Nm: y as i64}), InverseEnergy{per_J: x as i64/y as i64});
2278 assert_eq!(div_check(&(x as i32), &Torque{Nm: y as i32}), InverseEnergy{per_J: x as i32/y as i32});
2279 assert_eq!(div_check(&(x as f64), &Velocity{mps: y as f64}), TimePerDistance{spm: x as f64/y as f64});
2280 assert_eq!(div_check(&(x as f32), &Velocity{mps: y as f32}), TimePerDistance{spm: x as f32/y as f32});
2281 assert_eq!(div_check(&(x as i64), &Velocity{mps: y as i64}), TimePerDistance{spm: x as i64/y as i64});
2282 assert_eq!(div_check(&(x as i32), &Velocity{mps: y as i32}), TimePerDistance{spm: x as i32/y as i32});
2283 assert_eq!(div_check(&(x as f64), &VolumePerMass{m3_per_kg: y as f64}), Density{kgpm3: x as f64/y as f64});
2284 assert_eq!(div_check(&(x as f32), &VolumePerMass{m3_per_kg: y as f32}), Density{kgpm3: x as f32/y as f32});
2285 assert_eq!(div_check(&(x as i64), &VolumePerMass{m3_per_kg: y as i64}), Density{kgpm3: x as i64/y as i64});
2286 assert_eq!(div_check(&(x as i32), &VolumePerMass{m3_per_kg: y as i32}), Density{kgpm3: x as i32/y as i32});
2287 }
2288
2289 #[test]
2290 fn test_bigfloat_unit_conversions() {
2291 use num_bigfloat::BigFloat;
2292 let x = 4.5f64;
2293 let y = 2.5f64;
2294 assert_eq!(div_check(
2295 &BigFloat::from(x), &Time{s: BigFloat::from(y)}),
2296 Frequency{Hz: BigFloat::from(x)/BigFloat::from(y)}
2297 );
2298 assert_eq!(div_check(
2299 &BigFloat::from(x), &Time{s: BigFloat::from(y)}),
2300 Frequency{Hz: BigFloat::from(x)/BigFloat::from(y)}
2301 );
2302 assert_eq!(div_check(
2303 &BigFloat::from(x), &Conductance{S: BigFloat::from(y)}),
2304 Resistance{Ohm: BigFloat::from(x)/BigFloat::from(y)}
2305 );
2306 assert_eq!(div_check(
2307 &BigFloat::from(x), &Resistance{Ohm: BigFloat::from(y)}),
2308 Conductance{S: BigFloat::from(x)/BigFloat::from(y)}
2309 );
2310 assert_eq!(div_check(
2311 &BigFloat::from(x), &Conductance{S: BigFloat::from(y)}),
2312 Resistance{Ohm: BigFloat::from(x)/BigFloat::from(y)}
2313 );
2314 assert_eq!(div_check(
2315 &BigFloat::from(x), &Resistance{Ohm: BigFloat::from(y)}),
2316 Conductance{S: BigFloat::from(x)/BigFloat::from(y)}
2317 );
2318 assert_eq!(div_check(
2319 &BigFloat::from(x), &Frequency{Hz: BigFloat::from(y)}),
2320 Time{s: BigFloat::from(x)/BigFloat::from(y)}
2321 );
2322 assert_eq!(div_check(
2323 &BigFloat::from(x), &Frequency{Hz: BigFloat::from(y)}),
2324 Time{s: BigFloat::from(x)/BigFloat::from(y)}
2325 );
2326 assert_eq!(div_check(
2327 &BigFloat::from(x), &Radioactivity{Bq: BigFloat::from(y)}),
2328 Time{s: BigFloat::from(x)/BigFloat::from(y)}
2329 );
2330 assert_eq!(div_check(
2331 &BigFloat::from(x), &Radioactivity{Bq: BigFloat::from(y)}),
2332 Time{s: BigFloat::from(x)/BigFloat::from(y)}
2333 );
2334 assert_eq!(div_check(
2335 &BigFloat::from(x), &Molality{molpkg: BigFloat::from(y)}),
2336 MolarMass{kgpmol: BigFloat::from(x)/BigFloat::from(y)}
2337 );
2338 assert_eq!(div_check(
2339 &BigFloat::from(x), &MolarMass{kgpmol: BigFloat::from(y)}),
2340 Molality{molpkg: BigFloat::from(x)/BigFloat::from(y)}
2341 );
2342 assert_eq!(div_check(
2343 &BigFloat::from(x), &Molality{molpkg: BigFloat::from(y)}),
2344 MolarMass{kgpmol: BigFloat::from(x)/BigFloat::from(y)}
2345 );
2346 assert_eq!(div_check(
2347 &BigFloat::from(x), &MolarMass{kgpmol: BigFloat::from(y)}),
2348 Molality{molpkg: BigFloat::from(x)/BigFloat::from(y)}
2349 );
2350 assert_eq!(div_check(
2351 &BigFloat::from(x), &Amount{mol: BigFloat::from(y)}),
2352 InverseAmount{per_mol: BigFloat::from(x)/BigFloat::from(y)}
2353 );
2354 assert_eq!(div_check(
2355 &BigFloat::from(x), &Current{A: BigFloat::from(y)}),
2356 InverseCurrent{per_A: BigFloat::from(x)/BigFloat::from(y)}
2357 );
2358 assert_eq!(div_check(
2359 &BigFloat::from(x), &Distance{m: BigFloat::from(y)}),
2360 InverseDistance{per_m: BigFloat::from(x)/BigFloat::from(y)}
2361 );
2362 assert_eq!(div_check(
2363 &BigFloat::from(x), &InverseAmount{per_mol: BigFloat::from(y)}),
2364 Amount{mol: BigFloat::from(x)/BigFloat::from(y)}
2365 );
2366 assert_eq!(div_check(
2367 &BigFloat::from(x), &InverseCurrent{per_A: BigFloat::from(y)}),
2368 Current{A: BigFloat::from(x)/BigFloat::from(y)}
2369 );
2370 assert_eq!(div_check(
2371 &BigFloat::from(x), &InverseDistance{per_m: BigFloat::from(y)}),
2372 Distance{m: BigFloat::from(x)/BigFloat::from(y)}
2373 );
2374 assert_eq!(div_check(
2375 &BigFloat::from(x), &InverseLuminosity{per_cd: BigFloat::from(y)}),
2376 Luminosity{cd: BigFloat::from(x)/BigFloat::from(y)}
2377 );
2378 assert_eq!(div_check(
2379 &BigFloat::from(x), &InverseMass{per_kg: BigFloat::from(y)}),
2380 Mass{kg: BigFloat::from(x)/BigFloat::from(y)}
2381 );
2382 assert_eq!(div_check(
2383 &BigFloat::from(x), &InverseTemperature{per_K: BigFloat::from(y)}),
2384 Temperature{K: BigFloat::from(x)/BigFloat::from(y)}
2385 );
2386 assert_eq!(div_check(
2387 &BigFloat::from(x), &Luminosity{cd: BigFloat::from(y)}),
2388 InverseLuminosity{per_cd: BigFloat::from(x)/BigFloat::from(y)}
2389 );
2390 assert_eq!(div_check(
2391 &BigFloat::from(x), &Mass{kg: BigFloat::from(y)}),
2392 InverseMass{per_kg: BigFloat::from(x)/BigFloat::from(y)}
2393 );
2394 assert_eq!(div_check(
2395 &BigFloat::from(x), &Temperature{K: BigFloat::from(y)}),
2396 InverseTemperature{per_K: BigFloat::from(x)/BigFloat::from(y)}
2397 );
2398 assert_eq!(div_check(
2399 &BigFloat::from(x), &Amount{mol: BigFloat::from(y)}),
2400 InverseAmount{per_mol: BigFloat::from(x)/BigFloat::from(y)}
2401 );
2402 assert_eq!(div_check(
2403 &BigFloat::from(x), &Current{A: BigFloat::from(y)}),
2404 InverseCurrent{per_A: BigFloat::from(x)/BigFloat::from(y)}
2405 );
2406 assert_eq!(div_check(
2407 &BigFloat::from(x), &Distance{m: BigFloat::from(y)}),
2408 InverseDistance{per_m: BigFloat::from(x)/BigFloat::from(y)}
2409 );
2410 assert_eq!(div_check(
2411 &BigFloat::from(x), &InverseAmount{per_mol: BigFloat::from(y)}),
2412 Amount{mol: BigFloat::from(x)/BigFloat::from(y)}
2413 );
2414 assert_eq!(div_check(
2415 &BigFloat::from(x), &InverseCurrent{per_A: BigFloat::from(y)}),
2416 Current{A: BigFloat::from(x)/BigFloat::from(y)}
2417 );
2418 assert_eq!(div_check(
2419 &BigFloat::from(x), &InverseDistance{per_m: BigFloat::from(y)}),
2420 Distance{m: BigFloat::from(x)/BigFloat::from(y)}
2421 );
2422 assert_eq!(div_check(
2423 &BigFloat::from(x), &InverseLuminosity{per_cd: BigFloat::from(y)}),
2424 Luminosity{cd: BigFloat::from(x)/BigFloat::from(y)}
2425 );
2426 assert_eq!(div_check(
2427 &BigFloat::from(x), &InverseMass{per_kg: BigFloat::from(y)}),
2428 Mass{kg: BigFloat::from(x)/BigFloat::from(y)}
2429 );
2430 assert_eq!(div_check(
2431 &BigFloat::from(x), &InverseTemperature{per_K: BigFloat::from(y)}),
2432 Temperature{K: BigFloat::from(x)/BigFloat::from(y)}
2433 );
2434 assert_eq!(div_check(
2435 &BigFloat::from(x), &Luminosity{cd: BigFloat::from(y)}),
2436 InverseLuminosity{per_cd: BigFloat::from(x)/BigFloat::from(y)}
2437 );
2438 assert_eq!(div_check(
2439 &BigFloat::from(x), &Mass{kg: BigFloat::from(y)}),
2440 InverseMass{per_kg: BigFloat::from(x)/BigFloat::from(y)}
2441 );
2442 assert_eq!(div_check(
2443 &BigFloat::from(x), &Temperature{K: BigFloat::from(y)}),
2444 InverseTemperature{per_K: BigFloat::from(x)/BigFloat::from(y)}
2445 );
2446 assert_eq!(div_check(
2447 &BigFloat::from(x), &CatalyticActivity{molps: BigFloat::from(y)}),
2448 InverseCatalyticActivity{s_per_mol: BigFloat::from(x)/BigFloat::from(y)}
2449 );
2450 assert_eq!(div_check(
2451 &BigFloat::from(x), &Concentration{molpm3: BigFloat::from(y)}),
2452 MolarVolume{m3_per_mol: BigFloat::from(x)/BigFloat::from(y)}
2453 );
2454 assert_eq!(div_check(
2455 &BigFloat::from(x), &InverseCatalyticActivity{s_per_mol: BigFloat::from(y)}),
2456 CatalyticActivity{molps: BigFloat::from(x)/BigFloat::from(y)}
2457 );
2458 assert_eq!(div_check(
2459 &BigFloat::from(x), &InverseSpecificHeatCapacity{kgK_per_J: BigFloat::from(y)}),
2460 SpecificHeatCapacity{J_per_kgK: BigFloat::from(x)/BigFloat::from(y)}
2461 );
2462 assert_eq!(div_check(
2463 &BigFloat::from(x), &MolarVolume{m3_per_mol: BigFloat::from(y)}),
2464 Concentration{molpm3: BigFloat::from(x)/BigFloat::from(y)}
2465 );
2466 assert_eq!(div_check(
2467 &BigFloat::from(x), &SpecificHeatCapacity{J_per_kgK: BigFloat::from(y)}),
2468 InverseSpecificHeatCapacity{kgK_per_J: BigFloat::from(x)/BigFloat::from(y)}
2469 );
2470 assert_eq!(div_check(
2471 &BigFloat::from(x), &CatalyticActivity{molps: BigFloat::from(y)}),
2472 InverseCatalyticActivity{s_per_mol: BigFloat::from(x)/BigFloat::from(y)}
2473 );
2474 assert_eq!(div_check(
2475 &BigFloat::from(x), &Concentration{molpm3: BigFloat::from(y)}),
2476 MolarVolume{m3_per_mol: BigFloat::from(x)/BigFloat::from(y)}
2477 );
2478 assert_eq!(div_check(
2479 &BigFloat::from(x), &InverseCatalyticActivity{s_per_mol: BigFloat::from(y)}),
2480 CatalyticActivity{molps: BigFloat::from(x)/BigFloat::from(y)}
2481 );
2482 assert_eq!(div_check(
2483 &BigFloat::from(x), &InverseSpecificHeatCapacity{kgK_per_J: BigFloat::from(y)}),
2484 SpecificHeatCapacity{J_per_kgK: BigFloat::from(x)/BigFloat::from(y)}
2485 );
2486 assert_eq!(div_check(
2487 &BigFloat::from(x), &MolarVolume{m3_per_mol: BigFloat::from(y)}),
2488 Concentration{molpm3: BigFloat::from(x)/BigFloat::from(y)}
2489 );
2490 assert_eq!(div_check(
2491 &BigFloat::from(x), &SpecificHeatCapacity{J_per_kgK: BigFloat::from(y)}),
2492 InverseSpecificHeatCapacity{kgK_per_J: BigFloat::from(x)/BigFloat::from(y)}
2493 );
2494 assert_eq!(div_check(
2495 &BigFloat::from(x), &AreaPerLumen{m2_per_lm: BigFloat::from(y)}),
2496 Illuminance{lux: BigFloat::from(x)/BigFloat::from(y)}
2497 );
2498 assert_eq!(div_check(
2499 &BigFloat::from(x), &Capacitance{F: BigFloat::from(y)}),
2500 Elastance{per_F: BigFloat::from(x)/BigFloat::from(y)}
2501 );
2502 assert_eq!(div_check(
2503 &BigFloat::from(x), &Charge{C: BigFloat::from(y)}),
2504 InverseCharge{per_C: BigFloat::from(x)/BigFloat::from(y)}
2505 );
2506 assert_eq!(div_check(
2507 &BigFloat::from(x), &Elastance{per_F: BigFloat::from(y)}),
2508 Capacitance{F: BigFloat::from(x)/BigFloat::from(y)}
2509 );
2510 assert_eq!(div_check(
2511 &BigFloat::from(x), &Illuminance{lux: BigFloat::from(y)}),
2512 AreaPerLumen{m2_per_lm: BigFloat::from(x)/BigFloat::from(y)}
2513 );
2514 assert_eq!(div_check(
2515 &BigFloat::from(x), &Inductance{H: BigFloat::from(y)}),
2516 InverseInductance{per_H: BigFloat::from(x)/BigFloat::from(y)}
2517 );
2518 assert_eq!(div_check(
2519 &BigFloat::from(x), &InverseCharge{per_C: BigFloat::from(y)}),
2520 Charge{C: BigFloat::from(x)/BigFloat::from(y)}
2521 );
2522 assert_eq!(div_check(
2523 &BigFloat::from(x), &InverseInductance{per_H: BigFloat::from(y)}),
2524 Inductance{H: BigFloat::from(x)/BigFloat::from(y)}
2525 );
2526 assert_eq!(div_check(
2527 &BigFloat::from(x), &InverseLuminousFlux{per_lm: BigFloat::from(y)}),
2528 LuminousFlux{lm: BigFloat::from(x)/BigFloat::from(y)}
2529 );
2530 assert_eq!(div_check(
2531 &BigFloat::from(x), &InverseMagneticFlux{per_Wb: BigFloat::from(y)}),
2532 MagneticFlux{Wb: BigFloat::from(x)/BigFloat::from(y)}
2533 );
2534 assert_eq!(div_check(
2535 &BigFloat::from(x), &InverseMagneticFluxDensity{m2_per_Wb: BigFloat::from(y)}),
2536 MagneticFluxDensity{T: BigFloat::from(x)/BigFloat::from(y)}
2537 );
2538 assert_eq!(div_check(
2539 &BigFloat::from(x), &InverseVoltage{per_V: BigFloat::from(y)}),
2540 Voltage{V: BigFloat::from(x)/BigFloat::from(y)}
2541 );
2542 assert_eq!(div_check(
2543 &BigFloat::from(x), &LuminousFlux{lm: BigFloat::from(y)}),
2544 InverseLuminousFlux{per_lm: BigFloat::from(x)/BigFloat::from(y)}
2545 );
2546 assert_eq!(div_check(
2547 &BigFloat::from(x), &MagneticFlux{Wb: BigFloat::from(y)}),
2548 InverseMagneticFlux{per_Wb: BigFloat::from(x)/BigFloat::from(y)}
2549 );
2550 assert_eq!(div_check(
2551 &BigFloat::from(x), &MagneticFluxDensity{T: BigFloat::from(y)}),
2552 InverseMagneticFluxDensity{m2_per_Wb: BigFloat::from(x)/BigFloat::from(y)}
2553 );
2554 assert_eq!(div_check(
2555 &BigFloat::from(x), &Voltage{V: BigFloat::from(y)}),
2556 InverseVoltage{per_V: BigFloat::from(x)/BigFloat::from(y)}
2557 );
2558 assert_eq!(div_check(
2559 &BigFloat::from(x), &AreaPerLumen{m2_per_lm: BigFloat::from(y)}),
2560 Illuminance{lux: BigFloat::from(x)/BigFloat::from(y)}
2561 );
2562 assert_eq!(div_check(
2563 &BigFloat::from(x), &Capacitance{F: BigFloat::from(y)}),
2564 Elastance{per_F: BigFloat::from(x)/BigFloat::from(y)}
2565 );
2566 assert_eq!(div_check(
2567 &BigFloat::from(x), &Charge{C: BigFloat::from(y)}),
2568 InverseCharge{per_C: BigFloat::from(x)/BigFloat::from(y)}
2569 );
2570 assert_eq!(div_check(
2571 &BigFloat::from(x), &Elastance{per_F: BigFloat::from(y)}),
2572 Capacitance{F: BigFloat::from(x)/BigFloat::from(y)}
2573 );
2574 assert_eq!(div_check(
2575 &BigFloat::from(x), &Illuminance{lux: BigFloat::from(y)}),
2576 AreaPerLumen{m2_per_lm: BigFloat::from(x)/BigFloat::from(y)}
2577 );
2578 assert_eq!(div_check(
2579 &BigFloat::from(x), &Inductance{H: BigFloat::from(y)}),
2580 InverseInductance{per_H: BigFloat::from(x)/BigFloat::from(y)}
2581 );
2582 assert_eq!(div_check(
2583 &BigFloat::from(x), &InverseCharge{per_C: BigFloat::from(y)}),
2584 Charge{C: BigFloat::from(x)/BigFloat::from(y)}
2585 );
2586 assert_eq!(div_check(
2587 &BigFloat::from(x), &InverseInductance{per_H: BigFloat::from(y)}),
2588 Inductance{H: BigFloat::from(x)/BigFloat::from(y)}
2589 );
2590 assert_eq!(div_check(
2591 &BigFloat::from(x), &InverseLuminousFlux{per_lm: BigFloat::from(y)}),
2592 LuminousFlux{lm: BigFloat::from(x)/BigFloat::from(y)}
2593 );
2594 assert_eq!(div_check(
2595 &BigFloat::from(x), &InverseMagneticFlux{per_Wb: BigFloat::from(y)}),
2596 MagneticFlux{Wb: BigFloat::from(x)/BigFloat::from(y)}
2597 );
2598 assert_eq!(div_check(
2599 &BigFloat::from(x), &InverseMagneticFluxDensity{m2_per_Wb: BigFloat::from(y)}),
2600 MagneticFluxDensity{T: BigFloat::from(x)/BigFloat::from(y)}
2601 );
2602 assert_eq!(div_check(
2603 &BigFloat::from(x), &InverseVoltage{per_V: BigFloat::from(y)}),
2604 Voltage{V: BigFloat::from(x)/BigFloat::from(y)}
2605 );
2606 assert_eq!(div_check(
2607 &BigFloat::from(x), &LuminousFlux{lm: BigFloat::from(y)}),
2608 InverseLuminousFlux{per_lm: BigFloat::from(x)/BigFloat::from(y)}
2609 );
2610 assert_eq!(div_check(
2611 &BigFloat::from(x), &MagneticFlux{Wb: BigFloat::from(y)}),
2612 InverseMagneticFlux{per_Wb: BigFloat::from(x)/BigFloat::from(y)}
2613 );
2614 assert_eq!(div_check(
2615 &BigFloat::from(x), &MagneticFluxDensity{T: BigFloat::from(y)}),
2616 InverseMagneticFluxDensity{m2_per_Wb: BigFloat::from(x)/BigFloat::from(y)}
2617 );
2618 assert_eq!(div_check(
2619 &BigFloat::from(x), &Voltage{V: BigFloat::from(y)}),
2620 InverseVoltage{per_V: BigFloat::from(x)/BigFloat::from(y)}
2621 );
2622 assert_eq!(div_check(
2623 &BigFloat::from(x), &Angle{rad: BigFloat::from(y)}),
2624 InverseAngle{per_rad: BigFloat::from(x)/BigFloat::from(y)}
2625 );
2626 assert_eq!(div_check(
2627 &BigFloat::from(x), &Area{m2: BigFloat::from(y)}),
2628 InverseArea{per_m2: BigFloat::from(x)/BigFloat::from(y)}
2629 );
2630 assert_eq!(div_check(
2631 &BigFloat::from(x), &InverseAngle{per_rad: BigFloat::from(y)}),
2632 Angle{rad: BigFloat::from(x)/BigFloat::from(y)}
2633 );
2634 assert_eq!(div_check(
2635 &BigFloat::from(x), &InverseArea{per_m2: BigFloat::from(y)}),
2636 Area{m2: BigFloat::from(x)/BigFloat::from(y)}
2637 );
2638 assert_eq!(div_check(
2639 &BigFloat::from(x), &InverseSolidAngle{per_sr: BigFloat::from(y)}),
2640 SolidAngle{sr: BigFloat::from(x)/BigFloat::from(y)}
2641 );
2642 assert_eq!(div_check(
2643 &BigFloat::from(x), &InverseVolume{per_m3: BigFloat::from(y)}),
2644 Volume{m3: BigFloat::from(x)/BigFloat::from(y)}
2645 );
2646 assert_eq!(div_check(
2647 &BigFloat::from(x), &SolidAngle{sr: BigFloat::from(y)}),
2648 InverseSolidAngle{per_sr: BigFloat::from(x)/BigFloat::from(y)}
2649 );
2650 assert_eq!(div_check(
2651 &BigFloat::from(x), &Volume{m3: BigFloat::from(y)}),
2652 InverseVolume{per_m3: BigFloat::from(x)/BigFloat::from(y)}
2653 );
2654 assert_eq!(div_check(
2655 &BigFloat::from(x), &Angle{rad: BigFloat::from(y)}),
2656 InverseAngle{per_rad: BigFloat::from(x)/BigFloat::from(y)}
2657 );
2658 assert_eq!(div_check(
2659 &BigFloat::from(x), &Area{m2: BigFloat::from(y)}),
2660 InverseArea{per_m2: BigFloat::from(x)/BigFloat::from(y)}
2661 );
2662 assert_eq!(div_check(
2663 &BigFloat::from(x), &InverseAngle{per_rad: BigFloat::from(y)}),
2664 Angle{rad: BigFloat::from(x)/BigFloat::from(y)}
2665 );
2666 assert_eq!(div_check(
2667 &BigFloat::from(x), &InverseArea{per_m2: BigFloat::from(y)}),
2668 Area{m2: BigFloat::from(x)/BigFloat::from(y)}
2669 );
2670 assert_eq!(div_check(
2671 &BigFloat::from(x), &InverseSolidAngle{per_sr: BigFloat::from(y)}),
2672 SolidAngle{sr: BigFloat::from(x)/BigFloat::from(y)}
2673 );
2674 assert_eq!(div_check(
2675 &BigFloat::from(x), &InverseVolume{per_m3: BigFloat::from(y)}),
2676 Volume{m3: BigFloat::from(x)/BigFloat::from(y)}
2677 );
2678 assert_eq!(div_check(
2679 &BigFloat::from(x), &SolidAngle{sr: BigFloat::from(y)}),
2680 InverseSolidAngle{per_sr: BigFloat::from(x)/BigFloat::from(y)}
2681 );
2682 assert_eq!(div_check(
2683 &BigFloat::from(x), &Volume{m3: BigFloat::from(y)}),
2684 InverseVolume{per_m3: BigFloat::from(x)/BigFloat::from(y)}
2685 );
2686 assert_eq!(div_check(
2687 &BigFloat::from(x), &Acceleration{mps2: BigFloat::from(y)}),
2688 InverseAcceleration{s2pm: BigFloat::from(x)/BigFloat::from(y)}
2689 );
2690 assert_eq!(div_check(
2691 &BigFloat::from(x), &AngularAcceleration{radps2: BigFloat::from(y)}),
2692 InverseAngularAcceleration{s2prad: BigFloat::from(x)/BigFloat::from(y)}
2693 );
2694 assert_eq!(div_check(
2695 &BigFloat::from(x), &AngularMomentum{kgm2radps: BigFloat::from(y)}),
2696 InverseAngularMomentum{s_per_kgm2rad: BigFloat::from(x)/BigFloat::from(y)}
2697 );
2698 assert_eq!(div_check(
2699 &BigFloat::from(x), &AngularVelocity{radps: BigFloat::from(y)}),
2700 InverseAngularVelocity{s_per_rad: BigFloat::from(x)/BigFloat::from(y)}
2701 );
2702 assert_eq!(div_check(
2703 &BigFloat::from(x), &AreaDensity{kgpm2: BigFloat::from(y)}),
2704 AreaPerMass{m2_per_kg: BigFloat::from(x)/BigFloat::from(y)}
2705 );
2706 assert_eq!(div_check(
2707 &BigFloat::from(x), &AreaPerMass{m2_per_kg: BigFloat::from(y)}),
2708 AreaDensity{kgpm2: BigFloat::from(x)/BigFloat::from(y)}
2709 );
2710 assert_eq!(div_check(
2711 &BigFloat::from(x), &Density{kgpm3: BigFloat::from(y)}),
2712 VolumePerMass{m3_per_kg: BigFloat::from(x)/BigFloat::from(y)}
2713 );
2714 assert_eq!(div_check(
2715 &BigFloat::from(x), &Energy{J: BigFloat::from(y)}),
2716 InverseEnergy{per_J: BigFloat::from(x)/BigFloat::from(y)}
2717 );
2718 assert_eq!(div_check(
2719 &BigFloat::from(x), &Force{N: BigFloat::from(y)}),
2720 InverseForce{per_N: BigFloat::from(x)/BigFloat::from(y)}
2721 );
2722 assert_eq!(div_check(
2723 &BigFloat::from(x), &InverseAcceleration{s2pm: BigFloat::from(y)}),
2724 Acceleration{mps2: BigFloat::from(x)/BigFloat::from(y)}
2725 );
2726 assert_eq!(div_check(
2727 &BigFloat::from(x), &InverseAngularAcceleration{s2prad: BigFloat::from(y)}),
2728 AngularAcceleration{radps2: BigFloat::from(x)/BigFloat::from(y)}
2729 );
2730 assert_eq!(div_check(
2731 &BigFloat::from(x), &InverseAngularMomentum{s_per_kgm2rad: BigFloat::from(y)}),
2732 AngularMomentum{kgm2radps: BigFloat::from(x)/BigFloat::from(y)}
2733 );
2734 assert_eq!(div_check(
2735 &BigFloat::from(x), &InverseAngularVelocity{s_per_rad: BigFloat::from(y)}),
2736 AngularVelocity{radps: BigFloat::from(x)/BigFloat::from(y)}
2737 );
2738 assert_eq!(div_check(
2739 &BigFloat::from(x), &InverseEnergy{per_J: BigFloat::from(y)}),
2740 Energy{J: BigFloat::from(x)/BigFloat::from(y)}
2741 );
2742 assert_eq!(div_check(
2743 &BigFloat::from(x), &InverseForce{per_N: BigFloat::from(y)}),
2744 Force{N: BigFloat::from(x)/BigFloat::from(y)}
2745 );
2746 assert_eq!(div_check(
2747 &BigFloat::from(x), &InverseMomentum{s_per_kgm: BigFloat::from(y)}),
2748 Momentum{kgmps: BigFloat::from(x)/BigFloat::from(y)}
2749 );
2750 assert_eq!(div_check(
2751 &BigFloat::from(x), &InversePower{per_W: BigFloat::from(y)}),
2752 Power{W: BigFloat::from(x)/BigFloat::from(y)}
2753 );
2754 assert_eq!(div_check(
2755 &BigFloat::from(x), &InversePressure{per_Pa: BigFloat::from(y)}),
2756 Pressure{Pa: BigFloat::from(x)/BigFloat::from(y)}
2757 );
2758 assert_eq!(div_check(
2759 &BigFloat::from(x), &InverseTorque{per_Nm: BigFloat::from(y)}),
2760 Energy{J: BigFloat::from(x)/BigFloat::from(y)}
2761 );
2762 assert_eq!(div_check(
2763 &BigFloat::from(x), &Momentum{kgmps: BigFloat::from(y)}),
2764 InverseMomentum{s_per_kgm: BigFloat::from(x)/BigFloat::from(y)}
2765 );
2766 assert_eq!(div_check(
2767 &BigFloat::from(x), &Power{W: BigFloat::from(y)}),
2768 InversePower{per_W: BigFloat::from(x)/BigFloat::from(y)}
2769 );
2770 assert_eq!(div_check(
2771 &BigFloat::from(x), &Pressure{Pa: BigFloat::from(y)}),
2772 InversePressure{per_Pa: BigFloat::from(x)/BigFloat::from(y)}
2773 );
2774 assert_eq!(div_check(
2775 &BigFloat::from(x), &TimePerDistance{spm: BigFloat::from(y)}),
2776 Velocity{mps: BigFloat::from(x)/BigFloat::from(y)}
2777 );
2778 assert_eq!(div_check(
2779 &BigFloat::from(x), &Torque{Nm: BigFloat::from(y)}),
2780 InverseEnergy{per_J: BigFloat::from(x)/BigFloat::from(y)}
2781 );
2782 assert_eq!(div_check(
2783 &BigFloat::from(x), &Velocity{mps: BigFloat::from(y)}),
2784 TimePerDistance{spm: BigFloat::from(x)/BigFloat::from(y)}
2785 );
2786 assert_eq!(div_check(
2787 &BigFloat::from(x), &VolumePerMass{m3_per_kg: BigFloat::from(y)}),
2788 Density{kgpm3: BigFloat::from(x)/BigFloat::from(y)}
2789 );
2790 assert_eq!(div_check(
2791 &BigFloat::from(x), &Acceleration{mps2: BigFloat::from(y)}),
2792 InverseAcceleration{s2pm: BigFloat::from(x)/BigFloat::from(y)}
2793 );
2794 assert_eq!(div_check(
2795 &BigFloat::from(x), &AngularAcceleration{radps2: BigFloat::from(y)}),
2796 InverseAngularAcceleration{s2prad: BigFloat::from(x)/BigFloat::from(y)}
2797 );
2798 assert_eq!(div_check(
2799 &BigFloat::from(x), &AngularMomentum{kgm2radps: BigFloat::from(y)}),
2800 InverseAngularMomentum{s_per_kgm2rad: BigFloat::from(x)/BigFloat::from(y)}
2801 );
2802 assert_eq!(div_check(
2803 &BigFloat::from(x), &AngularVelocity{radps: BigFloat::from(y)}),
2804 InverseAngularVelocity{s_per_rad: BigFloat::from(x)/BigFloat::from(y)}
2805 );
2806 assert_eq!(div_check(
2807 &BigFloat::from(x), &AreaDensity{kgpm2: BigFloat::from(y)}),
2808 AreaPerMass{m2_per_kg: BigFloat::from(x)/BigFloat::from(y)}
2809 );
2810 assert_eq!(div_check(
2811 &BigFloat::from(x), &AreaPerMass{m2_per_kg: BigFloat::from(y)}),
2812 AreaDensity{kgpm2: BigFloat::from(x)/BigFloat::from(y)}
2813 );
2814 assert_eq!(div_check(
2815 &BigFloat::from(x), &Density{kgpm3: BigFloat::from(y)}),
2816 VolumePerMass{m3_per_kg: BigFloat::from(x)/BigFloat::from(y)}
2817 );
2818 assert_eq!(div_check(
2819 &BigFloat::from(x), &Energy{J: BigFloat::from(y)}),
2820 InverseEnergy{per_J: BigFloat::from(x)/BigFloat::from(y)}
2821 );
2822 assert_eq!(div_check(
2823 &BigFloat::from(x), &Force{N: BigFloat::from(y)}),
2824 InverseForce{per_N: BigFloat::from(x)/BigFloat::from(y)}
2825 );
2826 assert_eq!(div_check(
2827 &BigFloat::from(x), &InverseAcceleration{s2pm: BigFloat::from(y)}),
2828 Acceleration{mps2: BigFloat::from(x)/BigFloat::from(y)}
2829 );
2830 assert_eq!(div_check(
2831 &BigFloat::from(x), &InverseAngularAcceleration{s2prad: BigFloat::from(y)}),
2832 AngularAcceleration{radps2: BigFloat::from(x)/BigFloat::from(y)}
2833 );
2834 assert_eq!(div_check(
2835 &BigFloat::from(x), &InverseAngularMomentum{s_per_kgm2rad: BigFloat::from(y)}),
2836 AngularMomentum{kgm2radps: BigFloat::from(x)/BigFloat::from(y)}
2837 );
2838 assert_eq!(div_check(
2839 &BigFloat::from(x), &InverseAngularVelocity{s_per_rad: BigFloat::from(y)}),
2840 AngularVelocity{radps: BigFloat::from(x)/BigFloat::from(y)}
2841 );
2842 assert_eq!(div_check(
2843 &BigFloat::from(x), &InverseEnergy{per_J: BigFloat::from(y)}),
2844 Energy{J: BigFloat::from(x)/BigFloat::from(y)}
2845 );
2846 assert_eq!(div_check(
2847 &BigFloat::from(x), &InverseForce{per_N: BigFloat::from(y)}),
2848 Force{N: BigFloat::from(x)/BigFloat::from(y)}
2849 );
2850 assert_eq!(div_check(
2851 &BigFloat::from(x), &InverseMomentum{s_per_kgm: BigFloat::from(y)}),
2852 Momentum{kgmps: BigFloat::from(x)/BigFloat::from(y)}
2853 );
2854 assert_eq!(div_check(
2855 &BigFloat::from(x), &InversePower{per_W: BigFloat::from(y)}),
2856 Power{W: BigFloat::from(x)/BigFloat::from(y)}
2857 );
2858 assert_eq!(div_check(
2859 &BigFloat::from(x), &InversePressure{per_Pa: BigFloat::from(y)}),
2860 Pressure{Pa: BigFloat::from(x)/BigFloat::from(y)}
2861 );
2862 assert_eq!(div_check(
2863 &BigFloat::from(x), &InverseTorque{per_Nm: BigFloat::from(y)}),
2864 Energy{J: BigFloat::from(x)/BigFloat::from(y)}
2865 );
2866 assert_eq!(div_check(
2867 &BigFloat::from(x), &Momentum{kgmps: BigFloat::from(y)}),
2868 InverseMomentum{s_per_kgm: BigFloat::from(x)/BigFloat::from(y)}
2869 );
2870 assert_eq!(div_check(
2871 &BigFloat::from(x), &Power{W: BigFloat::from(y)}),
2872 InversePower{per_W: BigFloat::from(x)/BigFloat::from(y)}
2873 );
2874 assert_eq!(div_check(
2875 &BigFloat::from(x), &Pressure{Pa: BigFloat::from(y)}),
2876 InversePressure{per_Pa: BigFloat::from(x)/BigFloat::from(y)}
2877 );
2878 assert_eq!(div_check(
2879 &BigFloat::from(x), &TimePerDistance{spm: BigFloat::from(y)}),
2880 Velocity{mps: BigFloat::from(x)/BigFloat::from(y)}
2881 );
2882 assert_eq!(div_check(
2883 &BigFloat::from(x), &Torque{Nm: BigFloat::from(y)}),
2884 InverseEnergy{per_J: BigFloat::from(x)/BigFloat::from(y)}
2885 );
2886 assert_eq!(div_check(
2887 &BigFloat::from(x), &Velocity{mps: BigFloat::from(y)}),
2888 TimePerDistance{spm: BigFloat::from(x)/BigFloat::from(y)}
2889 );
2890 assert_eq!(div_check(
2891 &BigFloat::from(x), &VolumePerMass{m3_per_kg: BigFloat::from(y)}),
2892 Density{kgpm3: BigFloat::from(x)/BigFloat::from(y)}
2893 );
2894 }
2895
2896 #[test]
2897 fn test_complex_unit_conversions() {
2898 use num_complex::{Complex32, Complex64};
2899 let x = 4.5f64;
2900 let y = 2.5f64;
2901 assert_eq!(div_check(
2902 &Complex32::from(x as f32), &Time{s: Complex32::from(y as f32)}),
2903 Frequency{Hz: Complex32::from(x as f32)/Complex32::from(y as f32)}
2904 );
2905 assert_eq!(div_check(
2906 &Complex64::from(x), &Time{s: Complex64::from(y)}),
2907 Frequency{Hz: Complex64::from(x)/Complex64::from(y)}
2908 );
2909 assert_eq!(div_check(
2910 &Complex32::from(x as f32), &Time{s: Complex32::from(y as f32)}),
2911 Frequency{Hz: Complex32::from(x as f32)/Complex32::from(y as f32)}
2912 );
2913 assert_eq!(div_check(
2914 &Complex64::from(x), &Time{s: Complex64::from(y)}),
2915 Frequency{Hz: Complex64::from(x)/Complex64::from(y)}
2916 );
2917 assert_eq!(div_check(
2918 &Complex32::from(x as f32), &Conductance{S: Complex32::from(y as f32)}),
2919 Resistance{Ohm: Complex32::from(x as f32)/Complex32::from(y as f32)}
2920 );
2921 assert_eq!(div_check(
2922 &Complex64::from(x), &Conductance{S: Complex64::from(y)}),
2923 Resistance{Ohm: Complex64::from(x)/Complex64::from(y)}
2924 );
2925 assert_eq!(div_check(
2926 &Complex32::from(x as f32), &Resistance{Ohm: Complex32::from(y as f32)}),
2927 Conductance{S: Complex32::from(x as f32)/Complex32::from(y as f32)}
2928 );
2929 assert_eq!(div_check(
2930 &Complex64::from(x), &Resistance{Ohm: Complex64::from(y)}),
2931 Conductance{S: Complex64::from(x)/Complex64::from(y)}
2932 );
2933 assert_eq!(div_check(
2934 &Complex32::from(x as f32), &Conductance{S: Complex32::from(y as f32)}),
2935 Resistance{Ohm: Complex32::from(x as f32)/Complex32::from(y as f32)}
2936 );
2937 assert_eq!(div_check(
2938 &Complex64::from(x), &Conductance{S: Complex64::from(y)}),
2939 Resistance{Ohm: Complex64::from(x)/Complex64::from(y)}
2940 );
2941 assert_eq!(div_check(
2942 &Complex32::from(x as f32), &Resistance{Ohm: Complex32::from(y as f32)}),
2943 Conductance{S: Complex32::from(x as f32)/Complex32::from(y as f32)}
2944 );
2945 assert_eq!(div_check(
2946 &Complex64::from(x), &Resistance{Ohm: Complex64::from(y)}),
2947 Conductance{S: Complex64::from(x)/Complex64::from(y)}
2948 );
2949 assert_eq!(div_check(
2950 &Complex32::from(x as f32), &Frequency{Hz: Complex32::from(y as f32)}),
2951 Time{s: Complex32::from(x as f32)/Complex32::from(y as f32)}
2952 );
2953 assert_eq!(div_check(
2954 &Complex64::from(x), &Frequency{Hz: Complex64::from(y)}),
2955 Time{s: Complex64::from(x)/Complex64::from(y)}
2956 );
2957 assert_eq!(div_check(
2958 &Complex32::from(x as f32), &Frequency{Hz: Complex32::from(y as f32)}),
2959 Time{s: Complex32::from(x as f32)/Complex32::from(y as f32)}
2960 );
2961 assert_eq!(div_check(
2962 &Complex64::from(x), &Frequency{Hz: Complex64::from(y)}),
2963 Time{s: Complex64::from(x)/Complex64::from(y)}
2964 );
2965 assert_eq!(div_check(
2966 &Complex32::from(x as f32), &Radioactivity{Bq: Complex32::from(y as f32)}),
2967 Time{s: Complex32::from(x as f32)/Complex32::from(y as f32)}
2968 );
2969 assert_eq!(div_check(
2970 &Complex64::from(x), &Radioactivity{Bq: Complex64::from(y)}),
2971 Time{s: Complex64::from(x)/Complex64::from(y)}
2972 );
2973 assert_eq!(div_check(
2974 &Complex32::from(x as f32), &Radioactivity{Bq: Complex32::from(y as f32)}),
2975 Time{s: Complex32::from(x as f32)/Complex32::from(y as f32)}
2976 );
2977 assert_eq!(div_check(
2978 &Complex64::from(x), &Radioactivity{Bq: Complex64::from(y)}),
2979 Time{s: Complex64::from(x)/Complex64::from(y)}
2980 );
2981 assert_eq!(div_check(
2982 &Complex32::from(x as f32), &Molality{molpkg: Complex32::from(y as f32)}),
2983 MolarMass{kgpmol: Complex32::from(x as f32)/Complex32::from(y as f32)}
2984 );
2985 assert_eq!(div_check(
2986 &Complex64::from(x), &Molality{molpkg: Complex64::from(y)}),
2987 MolarMass{kgpmol: Complex64::from(x)/Complex64::from(y)}
2988 );
2989 assert_eq!(div_check(
2990 &Complex32::from(x as f32), &MolarMass{kgpmol: Complex32::from(y as f32)}),
2991 Molality{molpkg: Complex32::from(x as f32)/Complex32::from(y as f32)}
2992 );
2993 assert_eq!(div_check(
2994 &Complex64::from(x), &MolarMass{kgpmol: Complex64::from(y)}),
2995 Molality{molpkg: Complex64::from(x)/Complex64::from(y)}
2996 );
2997 assert_eq!(div_check(
2998 &Complex32::from(x as f32), &Molality{molpkg: Complex32::from(y as f32)}),
2999 MolarMass{kgpmol: Complex32::from(x as f32)/Complex32::from(y as f32)}
3000 );
3001 assert_eq!(div_check(
3002 &Complex64::from(x), &Molality{molpkg: Complex64::from(y)}),
3003 MolarMass{kgpmol: Complex64::from(x)/Complex64::from(y)}
3004 );
3005 assert_eq!(div_check(
3006 &Complex32::from(x as f32), &MolarMass{kgpmol: Complex32::from(y as f32)}),
3007 Molality{molpkg: Complex32::from(x as f32)/Complex32::from(y as f32)}
3008 );
3009 assert_eq!(div_check(
3010 &Complex64::from(x), &MolarMass{kgpmol: Complex64::from(y)}),
3011 Molality{molpkg: Complex64::from(x)/Complex64::from(y)}
3012 );
3013 assert_eq!(div_check(
3014 &Complex32::from(x as f32), &Amount{mol: Complex32::from(y as f32)}),
3015 InverseAmount{per_mol: Complex32::from(x as f32)/Complex32::from(y as f32)}
3016 );
3017 assert_eq!(div_check(
3018 &Complex64::from(x), &Amount{mol: Complex64::from(y)}),
3019 InverseAmount{per_mol: Complex64::from(x)/Complex64::from(y)}
3020 );
3021 assert_eq!(div_check(
3022 &Complex32::from(x as f32), &Current{A: Complex32::from(y as f32)}),
3023 InverseCurrent{per_A: Complex32::from(x as f32)/Complex32::from(y as f32)}
3024 );
3025 assert_eq!(div_check(
3026 &Complex64::from(x), &Current{A: Complex64::from(y)}),
3027 InverseCurrent{per_A: Complex64::from(x)/Complex64::from(y)}
3028 );
3029 assert_eq!(div_check(
3030 &Complex32::from(x as f32), &Distance{m: Complex32::from(y as f32)}),
3031 InverseDistance{per_m: Complex32::from(x as f32)/Complex32::from(y as f32)}
3032 );
3033 assert_eq!(div_check(
3034 &Complex64::from(x), &Distance{m: Complex64::from(y)}),
3035 InverseDistance{per_m: Complex64::from(x)/Complex64::from(y)}
3036 );
3037 assert_eq!(div_check(
3038 &Complex32::from(x as f32), &InverseAmount{per_mol: Complex32::from(y as f32)}),
3039 Amount{mol: Complex32::from(x as f32)/Complex32::from(y as f32)}
3040 );
3041 assert_eq!(div_check(
3042 &Complex64::from(x), &InverseAmount{per_mol: Complex64::from(y)}),
3043 Amount{mol: Complex64::from(x)/Complex64::from(y)}
3044 );
3045 assert_eq!(div_check(
3046 &Complex32::from(x as f32), &InverseCurrent{per_A: Complex32::from(y as f32)}),
3047 Current{A: Complex32::from(x as f32)/Complex32::from(y as f32)}
3048 );
3049 assert_eq!(div_check(
3050 &Complex64::from(x), &InverseCurrent{per_A: Complex64::from(y)}),
3051 Current{A: Complex64::from(x)/Complex64::from(y)}
3052 );
3053 assert_eq!(div_check(
3054 &Complex32::from(x as f32), &InverseDistance{per_m: Complex32::from(y as f32)}),
3055 Distance{m: Complex32::from(x as f32)/Complex32::from(y as f32)}
3056 );
3057 assert_eq!(div_check(
3058 &Complex64::from(x), &InverseDistance{per_m: Complex64::from(y)}),
3059 Distance{m: Complex64::from(x)/Complex64::from(y)}
3060 );
3061 assert_eq!(div_check(
3062 &Complex32::from(x as f32), &InverseLuminosity{per_cd: Complex32::from(y as f32)}),
3063 Luminosity{cd: Complex32::from(x as f32)/Complex32::from(y as f32)}
3064 );
3065 assert_eq!(div_check(
3066 &Complex64::from(x), &InverseLuminosity{per_cd: Complex64::from(y)}),
3067 Luminosity{cd: Complex64::from(x)/Complex64::from(y)}
3068 );
3069 assert_eq!(div_check(
3070 &Complex32::from(x as f32), &InverseMass{per_kg: Complex32::from(y as f32)}),
3071 Mass{kg: Complex32::from(x as f32)/Complex32::from(y as f32)}
3072 );
3073 assert_eq!(div_check(
3074 &Complex64::from(x), &InverseMass{per_kg: Complex64::from(y)}),
3075 Mass{kg: Complex64::from(x)/Complex64::from(y)}
3076 );
3077 assert_eq!(div_check(
3078 &Complex32::from(x as f32), &InverseTemperature{per_K: Complex32::from(y as f32)}),
3079 Temperature{K: Complex32::from(x as f32)/Complex32::from(y as f32)}
3080 );
3081 assert_eq!(div_check(
3082 &Complex64::from(x), &InverseTemperature{per_K: Complex64::from(y)}),
3083 Temperature{K: Complex64::from(x)/Complex64::from(y)}
3084 );
3085 assert_eq!(div_check(
3086 &Complex32::from(x as f32), &Luminosity{cd: Complex32::from(y as f32)}),
3087 InverseLuminosity{per_cd: Complex32::from(x as f32)/Complex32::from(y as f32)}
3088 );
3089 assert_eq!(div_check(
3090 &Complex64::from(x), &Luminosity{cd: Complex64::from(y)}),
3091 InverseLuminosity{per_cd: Complex64::from(x)/Complex64::from(y)}
3092 );
3093 assert_eq!(div_check(
3094 &Complex32::from(x as f32), &Mass{kg: Complex32::from(y as f32)}),
3095 InverseMass{per_kg: Complex32::from(x as f32)/Complex32::from(y as f32)}
3096 );
3097 assert_eq!(div_check(
3098 &Complex64::from(x), &Mass{kg: Complex64::from(y)}),
3099 InverseMass{per_kg: Complex64::from(x)/Complex64::from(y)}
3100 );
3101 assert_eq!(div_check(
3102 &Complex32::from(x as f32), &Temperature{K: Complex32::from(y as f32)}),
3103 InverseTemperature{per_K: Complex32::from(x as f32)/Complex32::from(y as f32)}
3104 );
3105 assert_eq!(div_check(
3106 &Complex64::from(x), &Temperature{K: Complex64::from(y)}),
3107 InverseTemperature{per_K: Complex64::from(x)/Complex64::from(y)}
3108 );
3109 assert_eq!(div_check(
3110 &Complex32::from(x as f32), &Amount{mol: Complex32::from(y as f32)}),
3111 InverseAmount{per_mol: Complex32::from(x as f32)/Complex32::from(y as f32)}
3112 );
3113 assert_eq!(div_check(
3114 &Complex64::from(x), &Amount{mol: Complex64::from(y)}),
3115 InverseAmount{per_mol: Complex64::from(x)/Complex64::from(y)}
3116 );
3117 assert_eq!(div_check(
3118 &Complex32::from(x as f32), &Current{A: Complex32::from(y as f32)}),
3119 InverseCurrent{per_A: Complex32::from(x as f32)/Complex32::from(y as f32)}
3120 );
3121 assert_eq!(div_check(
3122 &Complex64::from(x), &Current{A: Complex64::from(y)}),
3123 InverseCurrent{per_A: Complex64::from(x)/Complex64::from(y)}
3124 );
3125 assert_eq!(div_check(
3126 &Complex32::from(x as f32), &Distance{m: Complex32::from(y as f32)}),
3127 InverseDistance{per_m: Complex32::from(x as f32)/Complex32::from(y as f32)}
3128 );
3129 assert_eq!(div_check(
3130 &Complex64::from(x), &Distance{m: Complex64::from(y)}),
3131 InverseDistance{per_m: Complex64::from(x)/Complex64::from(y)}
3132 );
3133 assert_eq!(div_check(
3134 &Complex32::from(x as f32), &InverseAmount{per_mol: Complex32::from(y as f32)}),
3135 Amount{mol: Complex32::from(x as f32)/Complex32::from(y as f32)}
3136 );
3137 assert_eq!(div_check(
3138 &Complex64::from(x), &InverseAmount{per_mol: Complex64::from(y)}),
3139 Amount{mol: Complex64::from(x)/Complex64::from(y)}
3140 );
3141 assert_eq!(div_check(
3142 &Complex32::from(x as f32), &InverseCurrent{per_A: Complex32::from(y as f32)}),
3143 Current{A: Complex32::from(x as f32)/Complex32::from(y as f32)}
3144 );
3145 assert_eq!(div_check(
3146 &Complex64::from(x), &InverseCurrent{per_A: Complex64::from(y)}),
3147 Current{A: Complex64::from(x)/Complex64::from(y)}
3148 );
3149 assert_eq!(div_check(
3150 &Complex32::from(x as f32), &InverseDistance{per_m: Complex32::from(y as f32)}),
3151 Distance{m: Complex32::from(x as f32)/Complex32::from(y as f32)}
3152 );
3153 assert_eq!(div_check(
3154 &Complex64::from(x), &InverseDistance{per_m: Complex64::from(y)}),
3155 Distance{m: Complex64::from(x)/Complex64::from(y)}
3156 );
3157 assert_eq!(div_check(
3158 &Complex32::from(x as f32), &InverseLuminosity{per_cd: Complex32::from(y as f32)}),
3159 Luminosity{cd: Complex32::from(x as f32)/Complex32::from(y as f32)}
3160 );
3161 assert_eq!(div_check(
3162 &Complex64::from(x), &InverseLuminosity{per_cd: Complex64::from(y)}),
3163 Luminosity{cd: Complex64::from(x)/Complex64::from(y)}
3164 );
3165 assert_eq!(div_check(
3166 &Complex32::from(x as f32), &InverseMass{per_kg: Complex32::from(y as f32)}),
3167 Mass{kg: Complex32::from(x as f32)/Complex32::from(y as f32)}
3168 );
3169 assert_eq!(div_check(
3170 &Complex64::from(x), &InverseMass{per_kg: Complex64::from(y)}),
3171 Mass{kg: Complex64::from(x)/Complex64::from(y)}
3172 );
3173 assert_eq!(div_check(
3174 &Complex32::from(x as f32), &InverseTemperature{per_K: Complex32::from(y as f32)}),
3175 Temperature{K: Complex32::from(x as f32)/Complex32::from(y as f32)}
3176 );
3177 assert_eq!(div_check(
3178 &Complex64::from(x), &InverseTemperature{per_K: Complex64::from(y)}),
3179 Temperature{K: Complex64::from(x)/Complex64::from(y)}
3180 );
3181 assert_eq!(div_check(
3182 &Complex32::from(x as f32), &Luminosity{cd: Complex32::from(y as f32)}),
3183 InverseLuminosity{per_cd: Complex32::from(x as f32)/Complex32::from(y as f32)}
3184 );
3185 assert_eq!(div_check(
3186 &Complex64::from(x), &Luminosity{cd: Complex64::from(y)}),
3187 InverseLuminosity{per_cd: Complex64::from(x)/Complex64::from(y)}
3188 );
3189 assert_eq!(div_check(
3190 &Complex32::from(x as f32), &Mass{kg: Complex32::from(y as f32)}),
3191 InverseMass{per_kg: Complex32::from(x as f32)/Complex32::from(y as f32)}
3192 );
3193 assert_eq!(div_check(
3194 &Complex64::from(x), &Mass{kg: Complex64::from(y)}),
3195 InverseMass{per_kg: Complex64::from(x)/Complex64::from(y)}
3196 );
3197 assert_eq!(div_check(
3198 &Complex32::from(x as f32), &Temperature{K: Complex32::from(y as f32)}),
3199 InverseTemperature{per_K: Complex32::from(x as f32)/Complex32::from(y as f32)}
3200 );
3201 assert_eq!(div_check(
3202 &Complex64::from(x), &Temperature{K: Complex64::from(y)}),
3203 InverseTemperature{per_K: Complex64::from(x)/Complex64::from(y)}
3204 );
3205 assert_eq!(div_check(
3206 &Complex32::from(x as f32), &CatalyticActivity{molps: Complex32::from(y as f32)}),
3207 InverseCatalyticActivity{s_per_mol: Complex32::from(x as f32)/Complex32::from(y as f32)}
3208 );
3209 assert_eq!(div_check(
3210 &Complex64::from(x), &CatalyticActivity{molps: Complex64::from(y)}),
3211 InverseCatalyticActivity{s_per_mol: Complex64::from(x)/Complex64::from(y)}
3212 );
3213 assert_eq!(div_check(
3214 &Complex32::from(x as f32), &Concentration{molpm3: Complex32::from(y as f32)}),
3215 MolarVolume{m3_per_mol: Complex32::from(x as f32)/Complex32::from(y as f32)}
3216 );
3217 assert_eq!(div_check(
3218 &Complex64::from(x), &Concentration{molpm3: Complex64::from(y)}),
3219 MolarVolume{m3_per_mol: Complex64::from(x)/Complex64::from(y)}
3220 );
3221 assert_eq!(div_check(
3222 &Complex32::from(x as f32), &InverseCatalyticActivity{s_per_mol: Complex32::from(y as f32)}),
3223 CatalyticActivity{molps: Complex32::from(x as f32)/Complex32::from(y as f32)}
3224 );
3225 assert_eq!(div_check(
3226 &Complex64::from(x), &InverseCatalyticActivity{s_per_mol: Complex64::from(y)}),
3227 CatalyticActivity{molps: Complex64::from(x)/Complex64::from(y)}
3228 );
3229 assert_eq!(div_check(
3230 &Complex32::from(x as f32), &InverseSpecificHeatCapacity{kgK_per_J: Complex32::from(y as f32)}),
3231 SpecificHeatCapacity{J_per_kgK: Complex32::from(x as f32)/Complex32::from(y as f32)}
3232 );
3233 assert_eq!(div_check(
3234 &Complex64::from(x), &InverseSpecificHeatCapacity{kgK_per_J: Complex64::from(y)}),
3235 SpecificHeatCapacity{J_per_kgK: Complex64::from(x)/Complex64::from(y)}
3236 );
3237 assert_eq!(div_check(
3238 &Complex32::from(x as f32), &MolarVolume{m3_per_mol: Complex32::from(y as f32)}),
3239 Concentration{molpm3: Complex32::from(x as f32)/Complex32::from(y as f32)}
3240 );
3241 assert_eq!(div_check(
3242 &Complex64::from(x), &MolarVolume{m3_per_mol: Complex64::from(y)}),
3243 Concentration{molpm3: Complex64::from(x)/Complex64::from(y)}
3244 );
3245 assert_eq!(div_check(
3246 &Complex32::from(x as f32), &SpecificHeatCapacity{J_per_kgK: Complex32::from(y as f32)}),
3247 InverseSpecificHeatCapacity{kgK_per_J: Complex32::from(x as f32)/Complex32::from(y as f32)}
3248 );
3249 assert_eq!(div_check(
3250 &Complex64::from(x), &SpecificHeatCapacity{J_per_kgK: Complex64::from(y)}),
3251 InverseSpecificHeatCapacity{kgK_per_J: Complex64::from(x)/Complex64::from(y)}
3252 );
3253 assert_eq!(div_check(
3254 &Complex32::from(x as f32), &CatalyticActivity{molps: Complex32::from(y as f32)}),
3255 InverseCatalyticActivity{s_per_mol: Complex32::from(x as f32)/Complex32::from(y as f32)}
3256 );
3257 assert_eq!(div_check(
3258 &Complex64::from(x), &CatalyticActivity{molps: Complex64::from(y)}),
3259 InverseCatalyticActivity{s_per_mol: Complex64::from(x)/Complex64::from(y)}
3260 );
3261 assert_eq!(div_check(
3262 &Complex32::from(x as f32), &Concentration{molpm3: Complex32::from(y as f32)}),
3263 MolarVolume{m3_per_mol: Complex32::from(x as f32)/Complex32::from(y as f32)}
3264 );
3265 assert_eq!(div_check(
3266 &Complex64::from(x), &Concentration{molpm3: Complex64::from(y)}),
3267 MolarVolume{m3_per_mol: Complex64::from(x)/Complex64::from(y)}
3268 );
3269 assert_eq!(div_check(
3270 &Complex32::from(x as f32), &InverseCatalyticActivity{s_per_mol: Complex32::from(y as f32)}),
3271 CatalyticActivity{molps: Complex32::from(x as f32)/Complex32::from(y as f32)}
3272 );
3273 assert_eq!(div_check(
3274 &Complex64::from(x), &InverseCatalyticActivity{s_per_mol: Complex64::from(y)}),
3275 CatalyticActivity{molps: Complex64::from(x)/Complex64::from(y)}
3276 );
3277 assert_eq!(div_check(
3278 &Complex32::from(x as f32), &InverseSpecificHeatCapacity{kgK_per_J: Complex32::from(y as f32)}),
3279 SpecificHeatCapacity{J_per_kgK: Complex32::from(x as f32)/Complex32::from(y as f32)}
3280 );
3281 assert_eq!(div_check(
3282 &Complex64::from(x), &InverseSpecificHeatCapacity{kgK_per_J: Complex64::from(y)}),
3283 SpecificHeatCapacity{J_per_kgK: Complex64::from(x)/Complex64::from(y)}
3284 );
3285 assert_eq!(div_check(
3286 &Complex32::from(x as f32), &MolarVolume{m3_per_mol: Complex32::from(y as f32)}),
3287 Concentration{molpm3: Complex32::from(x as f32)/Complex32::from(y as f32)}
3288 );
3289 assert_eq!(div_check(
3290 &Complex64::from(x), &MolarVolume{m3_per_mol: Complex64::from(y)}),
3291 Concentration{molpm3: Complex64::from(x)/Complex64::from(y)}
3292 );
3293 assert_eq!(div_check(
3294 &Complex32::from(x as f32), &SpecificHeatCapacity{J_per_kgK: Complex32::from(y as f32)}),
3295 InverseSpecificHeatCapacity{kgK_per_J: Complex32::from(x as f32)/Complex32::from(y as f32)}
3296 );
3297 assert_eq!(div_check(
3298 &Complex64::from(x), &SpecificHeatCapacity{J_per_kgK: Complex64::from(y)}),
3299 InverseSpecificHeatCapacity{kgK_per_J: Complex64::from(x)/Complex64::from(y)}
3300 );
3301 assert_eq!(div_check(
3302 &Complex32::from(x as f32), &AreaPerLumen{m2_per_lm: Complex32::from(y as f32)}),
3303 Illuminance{lux: Complex32::from(x as f32)/Complex32::from(y as f32)}
3304 );
3305 assert_eq!(div_check(
3306 &Complex64::from(x), &AreaPerLumen{m2_per_lm: Complex64::from(y)}),
3307 Illuminance{lux: Complex64::from(x)/Complex64::from(y)}
3308 );
3309 assert_eq!(div_check(
3310 &Complex32::from(x as f32), &Capacitance{F: Complex32::from(y as f32)}),
3311 Elastance{per_F: Complex32::from(x as f32)/Complex32::from(y as f32)}
3312 );
3313 assert_eq!(div_check(
3314 &Complex64::from(x), &Capacitance{F: Complex64::from(y)}),
3315 Elastance{per_F: Complex64::from(x)/Complex64::from(y)}
3316 );
3317 assert_eq!(div_check(
3318 &Complex32::from(x as f32), &Charge{C: Complex32::from(y as f32)}),
3319 InverseCharge{per_C: Complex32::from(x as f32)/Complex32::from(y as f32)}
3320 );
3321 assert_eq!(div_check(
3322 &Complex64::from(x), &Charge{C: Complex64::from(y)}),
3323 InverseCharge{per_C: Complex64::from(x)/Complex64::from(y)}
3324 );
3325 assert_eq!(div_check(
3326 &Complex32::from(x as f32), &Elastance{per_F: Complex32::from(y as f32)}),
3327 Capacitance{F: Complex32::from(x as f32)/Complex32::from(y as f32)}
3328 );
3329 assert_eq!(div_check(
3330 &Complex64::from(x), &Elastance{per_F: Complex64::from(y)}),
3331 Capacitance{F: Complex64::from(x)/Complex64::from(y)}
3332 );
3333 assert_eq!(div_check(
3334 &Complex32::from(x as f32), &Illuminance{lux: Complex32::from(y as f32)}),
3335 AreaPerLumen{m2_per_lm: Complex32::from(x as f32)/Complex32::from(y as f32)}
3336 );
3337 assert_eq!(div_check(
3338 &Complex64::from(x), &Illuminance{lux: Complex64::from(y)}),
3339 AreaPerLumen{m2_per_lm: Complex64::from(x)/Complex64::from(y)}
3340 );
3341 assert_eq!(div_check(
3342 &Complex32::from(x as f32), &Inductance{H: Complex32::from(y as f32)}),
3343 InverseInductance{per_H: Complex32::from(x as f32)/Complex32::from(y as f32)}
3344 );
3345 assert_eq!(div_check(
3346 &Complex64::from(x), &Inductance{H: Complex64::from(y)}),
3347 InverseInductance{per_H: Complex64::from(x)/Complex64::from(y)}
3348 );
3349 assert_eq!(div_check(
3350 &Complex32::from(x as f32), &InverseCharge{per_C: Complex32::from(y as f32)}),
3351 Charge{C: Complex32::from(x as f32)/Complex32::from(y as f32)}
3352 );
3353 assert_eq!(div_check(
3354 &Complex64::from(x), &InverseCharge{per_C: Complex64::from(y)}),
3355 Charge{C: Complex64::from(x)/Complex64::from(y)}
3356 );
3357 assert_eq!(div_check(
3358 &Complex32::from(x as f32), &InverseInductance{per_H: Complex32::from(y as f32)}),
3359 Inductance{H: Complex32::from(x as f32)/Complex32::from(y as f32)}
3360 );
3361 assert_eq!(div_check(
3362 &Complex64::from(x), &InverseInductance{per_H: Complex64::from(y)}),
3363 Inductance{H: Complex64::from(x)/Complex64::from(y)}
3364 );
3365 assert_eq!(div_check(
3366 &Complex32::from(x as f32), &InverseLuminousFlux{per_lm: Complex32::from(y as f32)}),
3367 LuminousFlux{lm: Complex32::from(x as f32)/Complex32::from(y as f32)}
3368 );
3369 assert_eq!(div_check(
3370 &Complex64::from(x), &InverseLuminousFlux{per_lm: Complex64::from(y)}),
3371 LuminousFlux{lm: Complex64::from(x)/Complex64::from(y)}
3372 );
3373 assert_eq!(div_check(
3374 &Complex32::from(x as f32), &InverseMagneticFlux{per_Wb: Complex32::from(y as f32)}),
3375 MagneticFlux{Wb: Complex32::from(x as f32)/Complex32::from(y as f32)}
3376 );
3377 assert_eq!(div_check(
3378 &Complex64::from(x), &InverseMagneticFlux{per_Wb: Complex64::from(y)}),
3379 MagneticFlux{Wb: Complex64::from(x)/Complex64::from(y)}
3380 );
3381 assert_eq!(div_check(
3382 &Complex32::from(x as f32), &InverseMagneticFluxDensity{m2_per_Wb: Complex32::from(y as f32)}),
3383 MagneticFluxDensity{T: Complex32::from(x as f32)/Complex32::from(y as f32)}
3384 );
3385 assert_eq!(div_check(
3386 &Complex64::from(x), &InverseMagneticFluxDensity{m2_per_Wb: Complex64::from(y)}),
3387 MagneticFluxDensity{T: Complex64::from(x)/Complex64::from(y)}
3388 );
3389 assert_eq!(div_check(
3390 &Complex32::from(x as f32), &InverseVoltage{per_V: Complex32::from(y as f32)}),
3391 Voltage{V: Complex32::from(x as f32)/Complex32::from(y as f32)}
3392 );
3393 assert_eq!(div_check(
3394 &Complex64::from(x), &InverseVoltage{per_V: Complex64::from(y)}),
3395 Voltage{V: Complex64::from(x)/Complex64::from(y)}
3396 );
3397 assert_eq!(div_check(
3398 &Complex32::from(x as f32), &LuminousFlux{lm: Complex32::from(y as f32)}),
3399 InverseLuminousFlux{per_lm: Complex32::from(x as f32)/Complex32::from(y as f32)}
3400 );
3401 assert_eq!(div_check(
3402 &Complex64::from(x), &LuminousFlux{lm: Complex64::from(y)}),
3403 InverseLuminousFlux{per_lm: Complex64::from(x)/Complex64::from(y)}
3404 );
3405 assert_eq!(div_check(
3406 &Complex32::from(x as f32), &MagneticFlux{Wb: Complex32::from(y as f32)}),
3407 InverseMagneticFlux{per_Wb: Complex32::from(x as f32)/Complex32::from(y as f32)}
3408 );
3409 assert_eq!(div_check(
3410 &Complex64::from(x), &MagneticFlux{Wb: Complex64::from(y)}),
3411 InverseMagneticFlux{per_Wb: Complex64::from(x)/Complex64::from(y)}
3412 );
3413 assert_eq!(div_check(
3414 &Complex32::from(x as f32), &MagneticFluxDensity{T: Complex32::from(y as f32)}),
3415 InverseMagneticFluxDensity{m2_per_Wb: Complex32::from(x as f32)/Complex32::from(y as f32)}
3416 );
3417 assert_eq!(div_check(
3418 &Complex64::from(x), &MagneticFluxDensity{T: Complex64::from(y)}),
3419 InverseMagneticFluxDensity{m2_per_Wb: Complex64::from(x)/Complex64::from(y)}
3420 );
3421 assert_eq!(div_check(
3422 &Complex32::from(x as f32), &Voltage{V: Complex32::from(y as f32)}),
3423 InverseVoltage{per_V: Complex32::from(x as f32)/Complex32::from(y as f32)}
3424 );
3425 assert_eq!(div_check(
3426 &Complex64::from(x), &Voltage{V: Complex64::from(y)}),
3427 InverseVoltage{per_V: Complex64::from(x)/Complex64::from(y)}
3428 );
3429 assert_eq!(div_check(
3430 &Complex32::from(x as f32), &AreaPerLumen{m2_per_lm: Complex32::from(y as f32)}),
3431 Illuminance{lux: Complex32::from(x as f32)/Complex32::from(y as f32)}
3432 );
3433 assert_eq!(div_check(
3434 &Complex64::from(x), &AreaPerLumen{m2_per_lm: Complex64::from(y)}),
3435 Illuminance{lux: Complex64::from(x)/Complex64::from(y)}
3436 );
3437 assert_eq!(div_check(
3438 &Complex32::from(x as f32), &Capacitance{F: Complex32::from(y as f32)}),
3439 Elastance{per_F: Complex32::from(x as f32)/Complex32::from(y as f32)}
3440 );
3441 assert_eq!(div_check(
3442 &Complex64::from(x), &Capacitance{F: Complex64::from(y)}),
3443 Elastance{per_F: Complex64::from(x)/Complex64::from(y)}
3444 );
3445 assert_eq!(div_check(
3446 &Complex32::from(x as f32), &Charge{C: Complex32::from(y as f32)}),
3447 InverseCharge{per_C: Complex32::from(x as f32)/Complex32::from(y as f32)}
3448 );
3449 assert_eq!(div_check(
3450 &Complex64::from(x), &Charge{C: Complex64::from(y)}),
3451 InverseCharge{per_C: Complex64::from(x)/Complex64::from(y)}
3452 );
3453 assert_eq!(div_check(
3454 &Complex32::from(x as f32), &Elastance{per_F: Complex32::from(y as f32)}),
3455 Capacitance{F: Complex32::from(x as f32)/Complex32::from(y as f32)}
3456 );
3457 assert_eq!(div_check(
3458 &Complex64::from(x), &Elastance{per_F: Complex64::from(y)}),
3459 Capacitance{F: Complex64::from(x)/Complex64::from(y)}
3460 );
3461 assert_eq!(div_check(
3462 &Complex32::from(x as f32), &Illuminance{lux: Complex32::from(y as f32)}),
3463 AreaPerLumen{m2_per_lm: Complex32::from(x as f32)/Complex32::from(y as f32)}
3464 );
3465 assert_eq!(div_check(
3466 &Complex64::from(x), &Illuminance{lux: Complex64::from(y)}),
3467 AreaPerLumen{m2_per_lm: Complex64::from(x)/Complex64::from(y)}
3468 );
3469 assert_eq!(div_check(
3470 &Complex32::from(x as f32), &Inductance{H: Complex32::from(y as f32)}),
3471 InverseInductance{per_H: Complex32::from(x as f32)/Complex32::from(y as f32)}
3472 );
3473 assert_eq!(div_check(
3474 &Complex64::from(x), &Inductance{H: Complex64::from(y)}),
3475 InverseInductance{per_H: Complex64::from(x)/Complex64::from(y)}
3476 );
3477 assert_eq!(div_check(
3478 &Complex32::from(x as f32), &InverseCharge{per_C: Complex32::from(y as f32)}),
3479 Charge{C: Complex32::from(x as f32)/Complex32::from(y as f32)}
3480 );
3481 assert_eq!(div_check(
3482 &Complex64::from(x), &InverseCharge{per_C: Complex64::from(y)}),
3483 Charge{C: Complex64::from(x)/Complex64::from(y)}
3484 );
3485 assert_eq!(div_check(
3486 &Complex32::from(x as f32), &InverseInductance{per_H: Complex32::from(y as f32)}),
3487 Inductance{H: Complex32::from(x as f32)/Complex32::from(y as f32)}
3488 );
3489 assert_eq!(div_check(
3490 &Complex64::from(x), &InverseInductance{per_H: Complex64::from(y)}),
3491 Inductance{H: Complex64::from(x)/Complex64::from(y)}
3492 );
3493 assert_eq!(div_check(
3494 &Complex32::from(x as f32), &InverseLuminousFlux{per_lm: Complex32::from(y as f32)}),
3495 LuminousFlux{lm: Complex32::from(x as f32)/Complex32::from(y as f32)}
3496 );
3497 assert_eq!(div_check(
3498 &Complex64::from(x), &InverseLuminousFlux{per_lm: Complex64::from(y)}),
3499 LuminousFlux{lm: Complex64::from(x)/Complex64::from(y)}
3500 );
3501 assert_eq!(div_check(
3502 &Complex32::from(x as f32), &InverseMagneticFlux{per_Wb: Complex32::from(y as f32)}),
3503 MagneticFlux{Wb: Complex32::from(x as f32)/Complex32::from(y as f32)}
3504 );
3505 assert_eq!(div_check(
3506 &Complex64::from(x), &InverseMagneticFlux{per_Wb: Complex64::from(y)}),
3507 MagneticFlux{Wb: Complex64::from(x)/Complex64::from(y)}
3508 );
3509 assert_eq!(div_check(
3510 &Complex32::from(x as f32), &InverseMagneticFluxDensity{m2_per_Wb: Complex32::from(y as f32)}),
3511 MagneticFluxDensity{T: Complex32::from(x as f32)/Complex32::from(y as f32)}
3512 );
3513 assert_eq!(div_check(
3514 &Complex64::from(x), &InverseMagneticFluxDensity{m2_per_Wb: Complex64::from(y)}),
3515 MagneticFluxDensity{T: Complex64::from(x)/Complex64::from(y)}
3516 );
3517 assert_eq!(div_check(
3518 &Complex32::from(x as f32), &InverseVoltage{per_V: Complex32::from(y as f32)}),
3519 Voltage{V: Complex32::from(x as f32)/Complex32::from(y as f32)}
3520 );
3521 assert_eq!(div_check(
3522 &Complex64::from(x), &InverseVoltage{per_V: Complex64::from(y)}),
3523 Voltage{V: Complex64::from(x)/Complex64::from(y)}
3524 );
3525 assert_eq!(div_check(
3526 &Complex32::from(x as f32), &LuminousFlux{lm: Complex32::from(y as f32)}),
3527 InverseLuminousFlux{per_lm: Complex32::from(x as f32)/Complex32::from(y as f32)}
3528 );
3529 assert_eq!(div_check(
3530 &Complex64::from(x), &LuminousFlux{lm: Complex64::from(y)}),
3531 InverseLuminousFlux{per_lm: Complex64::from(x)/Complex64::from(y)}
3532 );
3533 assert_eq!(div_check(
3534 &Complex32::from(x as f32), &MagneticFlux{Wb: Complex32::from(y as f32)}),
3535 InverseMagneticFlux{per_Wb: Complex32::from(x as f32)/Complex32::from(y as f32)}
3536 );
3537 assert_eq!(div_check(
3538 &Complex64::from(x), &MagneticFlux{Wb: Complex64::from(y)}),
3539 InverseMagneticFlux{per_Wb: Complex64::from(x)/Complex64::from(y)}
3540 );
3541 assert_eq!(div_check(
3542 &Complex32::from(x as f32), &MagneticFluxDensity{T: Complex32::from(y as f32)}),
3543 InverseMagneticFluxDensity{m2_per_Wb: Complex32::from(x as f32)/Complex32::from(y as f32)}
3544 );
3545 assert_eq!(div_check(
3546 &Complex64::from(x), &MagneticFluxDensity{T: Complex64::from(y)}),
3547 InverseMagneticFluxDensity{m2_per_Wb: Complex64::from(x)/Complex64::from(y)}
3548 );
3549 assert_eq!(div_check(
3550 &Complex32::from(x as f32), &Voltage{V: Complex32::from(y as f32)}),
3551 InverseVoltage{per_V: Complex32::from(x as f32)/Complex32::from(y as f32)}
3552 );
3553 assert_eq!(div_check(
3554 &Complex64::from(x), &Voltage{V: Complex64::from(y)}),
3555 InverseVoltage{per_V: Complex64::from(x)/Complex64::from(y)}
3556 );
3557 assert_eq!(div_check(
3558 &Complex32::from(x as f32), &Angle{rad: Complex32::from(y as f32)}),
3559 InverseAngle{per_rad: Complex32::from(x as f32)/Complex32::from(y as f32)}
3560 );
3561 assert_eq!(div_check(
3562 &Complex64::from(x), &Angle{rad: Complex64::from(y)}),
3563 InverseAngle{per_rad: Complex64::from(x)/Complex64::from(y)}
3564 );
3565 assert_eq!(div_check(
3566 &Complex32::from(x as f32), &Area{m2: Complex32::from(y as f32)}),
3567 InverseArea{per_m2: Complex32::from(x as f32)/Complex32::from(y as f32)}
3568 );
3569 assert_eq!(div_check(
3570 &Complex64::from(x), &Area{m2: Complex64::from(y)}),
3571 InverseArea{per_m2: Complex64::from(x)/Complex64::from(y)}
3572 );
3573 assert_eq!(div_check(
3574 &Complex32::from(x as f32), &InverseAngle{per_rad: Complex32::from(y as f32)}),
3575 Angle{rad: Complex32::from(x as f32)/Complex32::from(y as f32)}
3576 );
3577 assert_eq!(div_check(
3578 &Complex64::from(x), &InverseAngle{per_rad: Complex64::from(y)}),
3579 Angle{rad: Complex64::from(x)/Complex64::from(y)}
3580 );
3581 assert_eq!(div_check(
3582 &Complex32::from(x as f32), &InverseArea{per_m2: Complex32::from(y as f32)}),
3583 Area{m2: Complex32::from(x as f32)/Complex32::from(y as f32)}
3584 );
3585 assert_eq!(div_check(
3586 &Complex64::from(x), &InverseArea{per_m2: Complex64::from(y)}),
3587 Area{m2: Complex64::from(x)/Complex64::from(y)}
3588 );
3589 assert_eq!(div_check(
3590 &Complex32::from(x as f32), &InverseSolidAngle{per_sr: Complex32::from(y as f32)}),
3591 SolidAngle{sr: Complex32::from(x as f32)/Complex32::from(y as f32)}
3592 );
3593 assert_eq!(div_check(
3594 &Complex64::from(x), &InverseSolidAngle{per_sr: Complex64::from(y)}),
3595 SolidAngle{sr: Complex64::from(x)/Complex64::from(y)}
3596 );
3597 assert_eq!(div_check(
3598 &Complex32::from(x as f32), &InverseVolume{per_m3: Complex32::from(y as f32)}),
3599 Volume{m3: Complex32::from(x as f32)/Complex32::from(y as f32)}
3600 );
3601 assert_eq!(div_check(
3602 &Complex64::from(x), &InverseVolume{per_m3: Complex64::from(y)}),
3603 Volume{m3: Complex64::from(x)/Complex64::from(y)}
3604 );
3605 assert_eq!(div_check(
3606 &Complex32::from(x as f32), &SolidAngle{sr: Complex32::from(y as f32)}),
3607 InverseSolidAngle{per_sr: Complex32::from(x as f32)/Complex32::from(y as f32)}
3608 );
3609 assert_eq!(div_check(
3610 &Complex64::from(x), &SolidAngle{sr: Complex64::from(y)}),
3611 InverseSolidAngle{per_sr: Complex64::from(x)/Complex64::from(y)}
3612 );
3613 assert_eq!(div_check(
3614 &Complex32::from(x as f32), &Volume{m3: Complex32::from(y as f32)}),
3615 InverseVolume{per_m3: Complex32::from(x as f32)/Complex32::from(y as f32)}
3616 );
3617 assert_eq!(div_check(
3618 &Complex64::from(x), &Volume{m3: Complex64::from(y)}),
3619 InverseVolume{per_m3: Complex64::from(x)/Complex64::from(y)}
3620 );
3621 assert_eq!(div_check(
3622 &Complex32::from(x as f32), &Angle{rad: Complex32::from(y as f32)}),
3623 InverseAngle{per_rad: Complex32::from(x as f32)/Complex32::from(y as f32)}
3624 );
3625 assert_eq!(div_check(
3626 &Complex64::from(x), &Angle{rad: Complex64::from(y)}),
3627 InverseAngle{per_rad: Complex64::from(x)/Complex64::from(y)}
3628 );
3629 assert_eq!(div_check(
3630 &Complex32::from(x as f32), &Area{m2: Complex32::from(y as f32)}),
3631 InverseArea{per_m2: Complex32::from(x as f32)/Complex32::from(y as f32)}
3632 );
3633 assert_eq!(div_check(
3634 &Complex64::from(x), &Area{m2: Complex64::from(y)}),
3635 InverseArea{per_m2: Complex64::from(x)/Complex64::from(y)}
3636 );
3637 assert_eq!(div_check(
3638 &Complex32::from(x as f32), &InverseAngle{per_rad: Complex32::from(y as f32)}),
3639 Angle{rad: Complex32::from(x as f32)/Complex32::from(y as f32)}
3640 );
3641 assert_eq!(div_check(
3642 &Complex64::from(x), &InverseAngle{per_rad: Complex64::from(y)}),
3643 Angle{rad: Complex64::from(x)/Complex64::from(y)}
3644 );
3645 assert_eq!(div_check(
3646 &Complex32::from(x as f32), &InverseArea{per_m2: Complex32::from(y as f32)}),
3647 Area{m2: Complex32::from(x as f32)/Complex32::from(y as f32)}
3648 );
3649 assert_eq!(div_check(
3650 &Complex64::from(x), &InverseArea{per_m2: Complex64::from(y)}),
3651 Area{m2: Complex64::from(x)/Complex64::from(y)}
3652 );
3653 assert_eq!(div_check(
3654 &Complex32::from(x as f32), &InverseSolidAngle{per_sr: Complex32::from(y as f32)}),
3655 SolidAngle{sr: Complex32::from(x as f32)/Complex32::from(y as f32)}
3656 );
3657 assert_eq!(div_check(
3658 &Complex64::from(x), &InverseSolidAngle{per_sr: Complex64::from(y)}),
3659 SolidAngle{sr: Complex64::from(x)/Complex64::from(y)}
3660 );
3661 assert_eq!(div_check(
3662 &Complex32::from(x as f32), &InverseVolume{per_m3: Complex32::from(y as f32)}),
3663 Volume{m3: Complex32::from(x as f32)/Complex32::from(y as f32)}
3664 );
3665 assert_eq!(div_check(
3666 &Complex64::from(x), &InverseVolume{per_m3: Complex64::from(y)}),
3667 Volume{m3: Complex64::from(x)/Complex64::from(y)}
3668 );
3669 assert_eq!(div_check(
3670 &Complex32::from(x as f32), &SolidAngle{sr: Complex32::from(y as f32)}),
3671 InverseSolidAngle{per_sr: Complex32::from(x as f32)/Complex32::from(y as f32)}
3672 );
3673 assert_eq!(div_check(
3674 &Complex64::from(x), &SolidAngle{sr: Complex64::from(y)}),
3675 InverseSolidAngle{per_sr: Complex64::from(x)/Complex64::from(y)}
3676 );
3677 assert_eq!(div_check(
3678 &Complex32::from(x as f32), &Volume{m3: Complex32::from(y as f32)}),
3679 InverseVolume{per_m3: Complex32::from(x as f32)/Complex32::from(y as f32)}
3680 );
3681 assert_eq!(div_check(
3682 &Complex64::from(x), &Volume{m3: Complex64::from(y)}),
3683 InverseVolume{per_m3: Complex64::from(x)/Complex64::from(y)}
3684 );
3685 assert_eq!(div_check(
3686 &Complex32::from(x as f32), &Acceleration{mps2: Complex32::from(y as f32)}),
3687 InverseAcceleration{s2pm: Complex32::from(x as f32)/Complex32::from(y as f32)}
3688 );
3689 assert_eq!(div_check(
3690 &Complex64::from(x), &Acceleration{mps2: Complex64::from(y)}),
3691 InverseAcceleration{s2pm: Complex64::from(x)/Complex64::from(y)}
3692 );
3693 assert_eq!(div_check(
3694 &Complex32::from(x as f32), &AngularAcceleration{radps2: Complex32::from(y as f32)}),
3695 InverseAngularAcceleration{s2prad: Complex32::from(x as f32)/Complex32::from(y as f32)}
3696 );
3697 assert_eq!(div_check(
3698 &Complex64::from(x), &AngularAcceleration{radps2: Complex64::from(y)}),
3699 InverseAngularAcceleration{s2prad: Complex64::from(x)/Complex64::from(y)}
3700 );
3701 assert_eq!(div_check(
3702 &Complex32::from(x as f32), &AngularMomentum{kgm2radps: Complex32::from(y as f32)}),
3703 InverseAngularMomentum{s_per_kgm2rad: Complex32::from(x as f32)/Complex32::from(y as f32)}
3704 );
3705 assert_eq!(div_check(
3706 &Complex64::from(x), &AngularMomentum{kgm2radps: Complex64::from(y)}),
3707 InverseAngularMomentum{s_per_kgm2rad: Complex64::from(x)/Complex64::from(y)}
3708 );
3709 assert_eq!(div_check(
3710 &Complex32::from(x as f32), &AngularVelocity{radps: Complex32::from(y as f32)}),
3711 InverseAngularVelocity{s_per_rad: Complex32::from(x as f32)/Complex32::from(y as f32)}
3712 );
3713 assert_eq!(div_check(
3714 &Complex64::from(x), &AngularVelocity{radps: Complex64::from(y)}),
3715 InverseAngularVelocity{s_per_rad: Complex64::from(x)/Complex64::from(y)}
3716 );
3717 assert_eq!(div_check(
3718 &Complex32::from(x as f32), &AreaDensity{kgpm2: Complex32::from(y as f32)}),
3719 AreaPerMass{m2_per_kg: Complex32::from(x as f32)/Complex32::from(y as f32)}
3720 );
3721 assert_eq!(div_check(
3722 &Complex64::from(x), &AreaDensity{kgpm2: Complex64::from(y)}),
3723 AreaPerMass{m2_per_kg: Complex64::from(x)/Complex64::from(y)}
3724 );
3725 assert_eq!(div_check(
3726 &Complex32::from(x as f32), &AreaPerMass{m2_per_kg: Complex32::from(y as f32)}),
3727 AreaDensity{kgpm2: Complex32::from(x as f32)/Complex32::from(y as f32)}
3728 );
3729 assert_eq!(div_check(
3730 &Complex64::from(x), &AreaPerMass{m2_per_kg: Complex64::from(y)}),
3731 AreaDensity{kgpm2: Complex64::from(x)/Complex64::from(y)}
3732 );
3733 assert_eq!(div_check(
3734 &Complex32::from(x as f32), &Density{kgpm3: Complex32::from(y as f32)}),
3735 VolumePerMass{m3_per_kg: Complex32::from(x as f32)/Complex32::from(y as f32)}
3736 );
3737 assert_eq!(div_check(
3738 &Complex64::from(x), &Density{kgpm3: Complex64::from(y)}),
3739 VolumePerMass{m3_per_kg: Complex64::from(x)/Complex64::from(y)}
3740 );
3741 assert_eq!(div_check(
3742 &Complex32::from(x as f32), &Energy{J: Complex32::from(y as f32)}),
3743 InverseEnergy{per_J: Complex32::from(x as f32)/Complex32::from(y as f32)}
3744 );
3745 assert_eq!(div_check(
3746 &Complex64::from(x), &Energy{J: Complex64::from(y)}),
3747 InverseEnergy{per_J: Complex64::from(x)/Complex64::from(y)}
3748 );
3749 assert_eq!(div_check(
3750 &Complex32::from(x as f32), &Force{N: Complex32::from(y as f32)}),
3751 InverseForce{per_N: Complex32::from(x as f32)/Complex32::from(y as f32)}
3752 );
3753 assert_eq!(div_check(
3754 &Complex64::from(x), &Force{N: Complex64::from(y)}),
3755 InverseForce{per_N: Complex64::from(x)/Complex64::from(y)}
3756 );
3757 assert_eq!(div_check(
3758 &Complex32::from(x as f32), &InverseAcceleration{s2pm: Complex32::from(y as f32)}),
3759 Acceleration{mps2: Complex32::from(x as f32)/Complex32::from(y as f32)}
3760 );
3761 assert_eq!(div_check(
3762 &Complex64::from(x), &InverseAcceleration{s2pm: Complex64::from(y)}),
3763 Acceleration{mps2: Complex64::from(x)/Complex64::from(y)}
3764 );
3765 assert_eq!(div_check(
3766 &Complex32::from(x as f32), &InverseAngularAcceleration{s2prad: Complex32::from(y as f32)}),
3767 AngularAcceleration{radps2: Complex32::from(x as f32)/Complex32::from(y as f32)}
3768 );
3769 assert_eq!(div_check(
3770 &Complex64::from(x), &InverseAngularAcceleration{s2prad: Complex64::from(y)}),
3771 AngularAcceleration{radps2: Complex64::from(x)/Complex64::from(y)}
3772 );
3773 assert_eq!(div_check(
3774 &Complex32::from(x as f32), &InverseAngularMomentum{s_per_kgm2rad: Complex32::from(y as f32)}),
3775 AngularMomentum{kgm2radps: Complex32::from(x as f32)/Complex32::from(y as f32)}
3776 );
3777 assert_eq!(div_check(
3778 &Complex64::from(x), &InverseAngularMomentum{s_per_kgm2rad: Complex64::from(y)}),
3779 AngularMomentum{kgm2radps: Complex64::from(x)/Complex64::from(y)}
3780 );
3781 assert_eq!(div_check(
3782 &Complex32::from(x as f32), &InverseAngularVelocity{s_per_rad: Complex32::from(y as f32)}),
3783 AngularVelocity{radps: Complex32::from(x as f32)/Complex32::from(y as f32)}
3784 );
3785 assert_eq!(div_check(
3786 &Complex64::from(x), &InverseAngularVelocity{s_per_rad: Complex64::from(y)}),
3787 AngularVelocity{radps: Complex64::from(x)/Complex64::from(y)}
3788 );
3789 assert_eq!(div_check(
3790 &Complex32::from(x as f32), &InverseEnergy{per_J: Complex32::from(y as f32)}),
3791 Energy{J: Complex32::from(x as f32)/Complex32::from(y as f32)}
3792 );
3793 assert_eq!(div_check(
3794 &Complex64::from(x), &InverseEnergy{per_J: Complex64::from(y)}),
3795 Energy{J: Complex64::from(x)/Complex64::from(y)}
3796 );
3797 assert_eq!(div_check(
3798 &Complex32::from(x as f32), &InverseForce{per_N: Complex32::from(y as f32)}),
3799 Force{N: Complex32::from(x as f32)/Complex32::from(y as f32)}
3800 );
3801 assert_eq!(div_check(
3802 &Complex64::from(x), &InverseForce{per_N: Complex64::from(y)}),
3803 Force{N: Complex64::from(x)/Complex64::from(y)}
3804 );
3805 assert_eq!(div_check(
3806 &Complex32::from(x as f32), &InverseMomentum{s_per_kgm: Complex32::from(y as f32)}),
3807 Momentum{kgmps: Complex32::from(x as f32)/Complex32::from(y as f32)}
3808 );
3809 assert_eq!(div_check(
3810 &Complex64::from(x), &InverseMomentum{s_per_kgm: Complex64::from(y)}),
3811 Momentum{kgmps: Complex64::from(x)/Complex64::from(y)}
3812 );
3813 assert_eq!(div_check(
3814 &Complex32::from(x as f32), &InversePower{per_W: Complex32::from(y as f32)}),
3815 Power{W: Complex32::from(x as f32)/Complex32::from(y as f32)}
3816 );
3817 assert_eq!(div_check(
3818 &Complex64::from(x), &InversePower{per_W: Complex64::from(y)}),
3819 Power{W: Complex64::from(x)/Complex64::from(y)}
3820 );
3821 assert_eq!(div_check(
3822 &Complex32::from(x as f32), &InversePressure{per_Pa: Complex32::from(y as f32)}),
3823 Pressure{Pa: Complex32::from(x as f32)/Complex32::from(y as f32)}
3824 );
3825 assert_eq!(div_check(
3826 &Complex64::from(x), &InversePressure{per_Pa: Complex64::from(y)}),
3827 Pressure{Pa: Complex64::from(x)/Complex64::from(y)}
3828 );
3829 assert_eq!(div_check(
3830 &Complex32::from(x as f32), &InverseTorque{per_Nm: Complex32::from(y as f32)}),
3831 Energy{J: Complex32::from(x as f32)/Complex32::from(y as f32)}
3832 );
3833 assert_eq!(div_check(
3834 &Complex64::from(x), &InverseTorque{per_Nm: Complex64::from(y)}),
3835 Energy{J: Complex64::from(x)/Complex64::from(y)}
3836 );
3837 assert_eq!(div_check(
3838 &Complex32::from(x as f32), &Momentum{kgmps: Complex32::from(y as f32)}),
3839 InverseMomentum{s_per_kgm: Complex32::from(x as f32)/Complex32::from(y as f32)}
3840 );
3841 assert_eq!(div_check(
3842 &Complex64::from(x), &Momentum{kgmps: Complex64::from(y)}),
3843 InverseMomentum{s_per_kgm: Complex64::from(x)/Complex64::from(y)}
3844 );
3845 assert_eq!(div_check(
3846 &Complex32::from(x as f32), &Power{W: Complex32::from(y as f32)}),
3847 InversePower{per_W: Complex32::from(x as f32)/Complex32::from(y as f32)}
3848 );
3849 assert_eq!(div_check(
3850 &Complex64::from(x), &Power{W: Complex64::from(y)}),
3851 InversePower{per_W: Complex64::from(x)/Complex64::from(y)}
3852 );
3853 assert_eq!(div_check(
3854 &Complex32::from(x as f32), &Pressure{Pa: Complex32::from(y as f32)}),
3855 InversePressure{per_Pa: Complex32::from(x as f32)/Complex32::from(y as f32)}
3856 );
3857 assert_eq!(div_check(
3858 &Complex64::from(x), &Pressure{Pa: Complex64::from(y)}),
3859 InversePressure{per_Pa: Complex64::from(x)/Complex64::from(y)}
3860 );
3861 assert_eq!(div_check(
3862 &Complex32::from(x as f32), &TimePerDistance{spm: Complex32::from(y as f32)}),
3863 Velocity{mps: Complex32::from(x as f32)/Complex32::from(y as f32)}
3864 );
3865 assert_eq!(div_check(
3866 &Complex64::from(x), &TimePerDistance{spm: Complex64::from(y)}),
3867 Velocity{mps: Complex64::from(x)/Complex64::from(y)}
3868 );
3869 assert_eq!(div_check(
3870 &Complex32::from(x as f32), &Torque{Nm: Complex32::from(y as f32)}),
3871 InverseEnergy{per_J: Complex32::from(x as f32)/Complex32::from(y as f32)}
3872 );
3873 assert_eq!(div_check(
3874 &Complex64::from(x), &Torque{Nm: Complex64::from(y)}),
3875 InverseEnergy{per_J: Complex64::from(x)/Complex64::from(y)}
3876 );
3877 assert_eq!(div_check(
3878 &Complex32::from(x as f32), &Velocity{mps: Complex32::from(y as f32)}),
3879 TimePerDistance{spm: Complex32::from(x as f32)/Complex32::from(y as f32)}
3880 );
3881 assert_eq!(div_check(
3882 &Complex64::from(x), &Velocity{mps: Complex64::from(y)}),
3883 TimePerDistance{spm: Complex64::from(x)/Complex64::from(y)}
3884 );
3885 assert_eq!(div_check(
3886 &Complex32::from(x as f32), &VolumePerMass{m3_per_kg: Complex32::from(y as f32)}),
3887 Density{kgpm3: Complex32::from(x as f32)/Complex32::from(y as f32)}
3888 );
3889 assert_eq!(div_check(
3890 &Complex64::from(x), &VolumePerMass{m3_per_kg: Complex64::from(y)}),
3891 Density{kgpm3: Complex64::from(x)/Complex64::from(y)}
3892 );
3893 assert_eq!(div_check(
3894 &Complex32::from(x as f32), &Acceleration{mps2: Complex32::from(y as f32)}),
3895 InverseAcceleration{s2pm: Complex32::from(x as f32)/Complex32::from(y as f32)}
3896 );
3897 assert_eq!(div_check(
3898 &Complex64::from(x), &Acceleration{mps2: Complex64::from(y)}),
3899 InverseAcceleration{s2pm: Complex64::from(x)/Complex64::from(y)}
3900 );
3901 assert_eq!(div_check(
3902 &Complex32::from(x as f32), &AngularAcceleration{radps2: Complex32::from(y as f32)}),
3903 InverseAngularAcceleration{s2prad: Complex32::from(x as f32)/Complex32::from(y as f32)}
3904 );
3905 assert_eq!(div_check(
3906 &Complex64::from(x), &AngularAcceleration{radps2: Complex64::from(y)}),
3907 InverseAngularAcceleration{s2prad: Complex64::from(x)/Complex64::from(y)}
3908 );
3909 assert_eq!(div_check(
3910 &Complex32::from(x as f32), &AngularMomentum{kgm2radps: Complex32::from(y as f32)}),
3911 InverseAngularMomentum{s_per_kgm2rad: Complex32::from(x as f32)/Complex32::from(y as f32)}
3912 );
3913 assert_eq!(div_check(
3914 &Complex64::from(x), &AngularMomentum{kgm2radps: Complex64::from(y)}),
3915 InverseAngularMomentum{s_per_kgm2rad: Complex64::from(x)/Complex64::from(y)}
3916 );
3917 assert_eq!(div_check(
3918 &Complex32::from(x as f32), &AngularVelocity{radps: Complex32::from(y as f32)}),
3919 InverseAngularVelocity{s_per_rad: Complex32::from(x as f32)/Complex32::from(y as f32)}
3920 );
3921 assert_eq!(div_check(
3922 &Complex64::from(x), &AngularVelocity{radps: Complex64::from(y)}),
3923 InverseAngularVelocity{s_per_rad: Complex64::from(x)/Complex64::from(y)}
3924 );
3925 assert_eq!(div_check(
3926 &Complex32::from(x as f32), &AreaDensity{kgpm2: Complex32::from(y as f32)}),
3927 AreaPerMass{m2_per_kg: Complex32::from(x as f32)/Complex32::from(y as f32)}
3928 );
3929 assert_eq!(div_check(
3930 &Complex64::from(x), &AreaDensity{kgpm2: Complex64::from(y)}),
3931 AreaPerMass{m2_per_kg: Complex64::from(x)/Complex64::from(y)}
3932 );
3933 assert_eq!(div_check(
3934 &Complex32::from(x as f32), &AreaPerMass{m2_per_kg: Complex32::from(y as f32)}),
3935 AreaDensity{kgpm2: Complex32::from(x as f32)/Complex32::from(y as f32)}
3936 );
3937 assert_eq!(div_check(
3938 &Complex64::from(x), &AreaPerMass{m2_per_kg: Complex64::from(y)}),
3939 AreaDensity{kgpm2: Complex64::from(x)/Complex64::from(y)}
3940 );
3941 assert_eq!(div_check(
3942 &Complex32::from(x as f32), &Density{kgpm3: Complex32::from(y as f32)}),
3943 VolumePerMass{m3_per_kg: Complex32::from(x as f32)/Complex32::from(y as f32)}
3944 );
3945 assert_eq!(div_check(
3946 &Complex64::from(x), &Density{kgpm3: Complex64::from(y)}),
3947 VolumePerMass{m3_per_kg: Complex64::from(x)/Complex64::from(y)}
3948 );
3949 assert_eq!(div_check(
3950 &Complex32::from(x as f32), &Energy{J: Complex32::from(y as f32)}),
3951 InverseEnergy{per_J: Complex32::from(x as f32)/Complex32::from(y as f32)}
3952 );
3953 assert_eq!(div_check(
3954 &Complex64::from(x), &Energy{J: Complex64::from(y)}),
3955 InverseEnergy{per_J: Complex64::from(x)/Complex64::from(y)}
3956 );
3957 assert_eq!(div_check(
3958 &Complex32::from(x as f32), &Force{N: Complex32::from(y as f32)}),
3959 InverseForce{per_N: Complex32::from(x as f32)/Complex32::from(y as f32)}
3960 );
3961 assert_eq!(div_check(
3962 &Complex64::from(x), &Force{N: Complex64::from(y)}),
3963 InverseForce{per_N: Complex64::from(x)/Complex64::from(y)}
3964 );
3965 assert_eq!(div_check(
3966 &Complex32::from(x as f32), &InverseAcceleration{s2pm: Complex32::from(y as f32)}),
3967 Acceleration{mps2: Complex32::from(x as f32)/Complex32::from(y as f32)}
3968 );
3969 assert_eq!(div_check(
3970 &Complex64::from(x), &InverseAcceleration{s2pm: Complex64::from(y)}),
3971 Acceleration{mps2: Complex64::from(x)/Complex64::from(y)}
3972 );
3973 assert_eq!(div_check(
3974 &Complex32::from(x as f32), &InverseAngularAcceleration{s2prad: Complex32::from(y as f32)}),
3975 AngularAcceleration{radps2: Complex32::from(x as f32)/Complex32::from(y as f32)}
3976 );
3977 assert_eq!(div_check(
3978 &Complex64::from(x), &InverseAngularAcceleration{s2prad: Complex64::from(y)}),
3979 AngularAcceleration{radps2: Complex64::from(x)/Complex64::from(y)}
3980 );
3981 assert_eq!(div_check(
3982 &Complex32::from(x as f32), &InverseAngularMomentum{s_per_kgm2rad: Complex32::from(y as f32)}),
3983 AngularMomentum{kgm2radps: Complex32::from(x as f32)/Complex32::from(y as f32)}
3984 );
3985 assert_eq!(div_check(
3986 &Complex64::from(x), &InverseAngularMomentum{s_per_kgm2rad: Complex64::from(y)}),
3987 AngularMomentum{kgm2radps: Complex64::from(x)/Complex64::from(y)}
3988 );
3989 assert_eq!(div_check(
3990 &Complex32::from(x as f32), &InverseAngularVelocity{s_per_rad: Complex32::from(y as f32)}),
3991 AngularVelocity{radps: Complex32::from(x as f32)/Complex32::from(y as f32)}
3992 );
3993 assert_eq!(div_check(
3994 &Complex64::from(x), &InverseAngularVelocity{s_per_rad: Complex64::from(y)}),
3995 AngularVelocity{radps: Complex64::from(x)/Complex64::from(y)}
3996 );
3997 assert_eq!(div_check(
3998 &Complex32::from(x as f32), &InverseEnergy{per_J: Complex32::from(y as f32)}),
3999 Energy{J: Complex32::from(x as f32)/Complex32::from(y as f32)}
4000 );
4001 assert_eq!(div_check(
4002 &Complex64::from(x), &InverseEnergy{per_J: Complex64::from(y)}),
4003 Energy{J: Complex64::from(x)/Complex64::from(y)}
4004 );
4005 assert_eq!(div_check(
4006 &Complex32::from(x as f32), &InverseForce{per_N: Complex32::from(y as f32)}),
4007 Force{N: Complex32::from(x as f32)/Complex32::from(y as f32)}
4008 );
4009 assert_eq!(div_check(
4010 &Complex64::from(x), &InverseForce{per_N: Complex64::from(y)}),
4011 Force{N: Complex64::from(x)/Complex64::from(y)}
4012 );
4013 assert_eq!(div_check(
4014 &Complex32::from(x as f32), &InverseMomentum{s_per_kgm: Complex32::from(y as f32)}),
4015 Momentum{kgmps: Complex32::from(x as f32)/Complex32::from(y as f32)}
4016 );
4017 assert_eq!(div_check(
4018 &Complex64::from(x), &InverseMomentum{s_per_kgm: Complex64::from(y)}),
4019 Momentum{kgmps: Complex64::from(x)/Complex64::from(y)}
4020 );
4021 assert_eq!(div_check(
4022 &Complex32::from(x as f32), &InversePower{per_W: Complex32::from(y as f32)}),
4023 Power{W: Complex32::from(x as f32)/Complex32::from(y as f32)}
4024 );
4025 assert_eq!(div_check(
4026 &Complex64::from(x), &InversePower{per_W: Complex64::from(y)}),
4027 Power{W: Complex64::from(x)/Complex64::from(y)}
4028 );
4029 assert_eq!(div_check(
4030 &Complex32::from(x as f32), &InversePressure{per_Pa: Complex32::from(y as f32)}),
4031 Pressure{Pa: Complex32::from(x as f32)/Complex32::from(y as f32)}
4032 );
4033 assert_eq!(div_check(
4034 &Complex64::from(x), &InversePressure{per_Pa: Complex64::from(y)}),
4035 Pressure{Pa: Complex64::from(x)/Complex64::from(y)}
4036 );
4037 assert_eq!(div_check(
4038 &Complex32::from(x as f32), &InverseTorque{per_Nm: Complex32::from(y as f32)}),
4039 Energy{J: Complex32::from(x as f32)/Complex32::from(y as f32)}
4040 );
4041 assert_eq!(div_check(
4042 &Complex64::from(x), &InverseTorque{per_Nm: Complex64::from(y)}),
4043 Energy{J: Complex64::from(x)/Complex64::from(y)}
4044 );
4045 assert_eq!(div_check(
4046 &Complex32::from(x as f32), &Momentum{kgmps: Complex32::from(y as f32)}),
4047 InverseMomentum{s_per_kgm: Complex32::from(x as f32)/Complex32::from(y as f32)}
4048 );
4049 assert_eq!(div_check(
4050 &Complex64::from(x), &Momentum{kgmps: Complex64::from(y)}),
4051 InverseMomentum{s_per_kgm: Complex64::from(x)/Complex64::from(y)}
4052 );
4053 assert_eq!(div_check(
4054 &Complex32::from(x as f32), &Power{W: Complex32::from(y as f32)}),
4055 InversePower{per_W: Complex32::from(x as f32)/Complex32::from(y as f32)}
4056 );
4057 assert_eq!(div_check(
4058 &Complex64::from(x), &Power{W: Complex64::from(y)}),
4059 InversePower{per_W: Complex64::from(x)/Complex64::from(y)}
4060 );
4061 assert_eq!(div_check(
4062 &Complex32::from(x as f32), &Pressure{Pa: Complex32::from(y as f32)}),
4063 InversePressure{per_Pa: Complex32::from(x as f32)/Complex32::from(y as f32)}
4064 );
4065 assert_eq!(div_check(
4066 &Complex64::from(x), &Pressure{Pa: Complex64::from(y)}),
4067 InversePressure{per_Pa: Complex64::from(x)/Complex64::from(y)}
4068 );
4069 assert_eq!(div_check(
4070 &Complex32::from(x as f32), &TimePerDistance{spm: Complex32::from(y as f32)}),
4071 Velocity{mps: Complex32::from(x as f32)/Complex32::from(y as f32)}
4072 );
4073 assert_eq!(div_check(
4074 &Complex64::from(x), &TimePerDistance{spm: Complex64::from(y)}),
4075 Velocity{mps: Complex64::from(x)/Complex64::from(y)}
4076 );
4077 assert_eq!(div_check(
4078 &Complex32::from(x as f32), &Torque{Nm: Complex32::from(y as f32)}),
4079 InverseEnergy{per_J: Complex32::from(x as f32)/Complex32::from(y as f32)}
4080 );
4081 assert_eq!(div_check(
4082 &Complex64::from(x), &Torque{Nm: Complex64::from(y)}),
4083 InverseEnergy{per_J: Complex64::from(x)/Complex64::from(y)}
4084 );
4085 assert_eq!(div_check(
4086 &Complex32::from(x as f32), &Velocity{mps: Complex32::from(y as f32)}),
4087 TimePerDistance{spm: Complex32::from(x as f32)/Complex32::from(y as f32)}
4088 );
4089 assert_eq!(div_check(
4090 &Complex64::from(x), &Velocity{mps: Complex64::from(y)}),
4091 TimePerDistance{spm: Complex64::from(x)/Complex64::from(y)}
4092 );
4093 assert_eq!(div_check(
4094 &Complex32::from(x as f32), &VolumePerMass{m3_per_kg: Complex32::from(y as f32)}),
4095 Density{kgpm3: Complex32::from(x as f32)/Complex32::from(y as f32)}
4096 );
4097 assert_eq!(div_check(
4098 &Complex64::from(x), &VolumePerMass{m3_per_kg: Complex64::from(y)}),
4099 Density{kgpm3: Complex64::from(x)/Complex64::from(y)}
4100 );
4101 }
4102
4103 #[test]
4104 fn amount_units() {
4105 assert_approx_equal(
4106 Amount::from_mol(1.66053906717385e-24_f64).to_mol(),
4107 Amount::from_count(1.0_f64).to_mol(), 9
4108 );
4109 assert_approx_equal(
4110 Amount::from_mol(1.0_f64).to_mol() * 6.02214076e+23,
4111 Amount::from_mol(1.0_f64).to_count(), 9
4112 );
4113 assert_approx_equal(
4114 Amount::from_mol(0.001_f64).to_mol(),
4115 Amount::from_mmol(1.0_f64).to_mol(), 9
4116 );
4117 assert_approx_equal(
4118 Amount::from_mol(1.0_f64).to_mol() * 1000.0,
4119 Amount::from_mol(1.0_f64).to_mmol(), 9
4120 );
4121 assert_approx_equal(
4122 Amount::from_mol(1e-06_f64).to_mol(),
4123 Amount::from_umol(1.0_f64).to_mol(), 9
4124 );
4125 assert_approx_equal(
4126 Amount::from_mol(1.0_f64).to_mol() * 1000000.0,
4127 Amount::from_mol(1.0_f64).to_umol(), 9
4128 );
4129 assert_approx_equal(
4130 Amount::from_mol(1e-09_f64).to_mol(),
4131 Amount::from_nmol(1.0_f64).to_mol(), 9
4132 );
4133 assert_approx_equal(
4134 Amount::from_mol(1.0_f64).to_mol() * 1000000000.0,
4135 Amount::from_mol(1.0_f64).to_nmol(), 9
4136 );
4137 assert_approx_equal(
4138 Amount::from_mol(1e-12_f64).to_mol(),
4139 Amount::from_pmol(1.0_f64).to_mol(), 9
4140 );
4141 assert_approx_equal(
4142 Amount::from_mol(1.0_f64).to_mol() * 1000000000000.0,
4143 Amount::from_mol(1.0_f64).to_pmol(), 9
4144 );
4145 }
4146
4147 #[test]
4148 fn current_units() {
4149 assert_approx_equal(
4150 Current::from_A(0.001_f64).to_A(),
4151 Current::from_mA(1.0_f64).to_A(), 9
4152 );
4153 assert_approx_equal(
4154 Current::from_A(1.0_f64).to_A() * 1000.0,
4155 Current::from_A(1.0_f64).to_mA(), 9
4156 );
4157 assert_approx_equal(
4158 Current::from_A(1e-06_f64).to_A(),
4159 Current::from_uA(1.0_f64).to_A(), 9
4160 );
4161 assert_approx_equal(
4162 Current::from_A(1.0_f64).to_A() * 1000000.0,
4163 Current::from_A(1.0_f64).to_uA(), 9
4164 );
4165 assert_approx_equal(
4166 Current::from_A(1e-09_f64).to_A(),
4167 Current::from_nA(1.0_f64).to_A(), 9
4168 );
4169 assert_approx_equal(
4170 Current::from_A(1.0_f64).to_A() * 1000000000.0,
4171 Current::from_A(1.0_f64).to_nA(), 9
4172 );
4173 assert_approx_equal(
4174 Current::from_A(1000.0_f64).to_A(),
4175 Current::from_kA(1.0_f64).to_A(), 9
4176 );
4177 assert_approx_equal(
4178 Current::from_A(1.0_f64).to_A() * 0.001,
4179 Current::from_A(1.0_f64).to_kA(), 9
4180 );
4181 assert_approx_equal(
4182 Current::from_A(1000000.0_f64).to_A(),
4183 Current::from_MA(1.0_f64).to_A(), 9
4184 );
4185 assert_approx_equal(
4186 Current::from_A(1.0_f64).to_A() * 1e-06,
4187 Current::from_A(1.0_f64).to_MA(), 9
4188 );
4189 assert_approx_equal(
4190 Current::from_A(1000000000.0_f64).to_A(),
4191 Current::from_GA(1.0_f64).to_A(), 9
4192 );
4193 assert_approx_equal(
4194 Current::from_A(1.0_f64).to_A() * 1e-09,
4195 Current::from_A(1.0_f64).to_GA(), 9
4196 );
4197 }
4198
4199 #[test]
4200 fn distance_units() {
4201 assert_approx_equal(
4202 Distance::from_m(0.01_f64).to_m(),
4203 Distance::from_cm(1.0_f64).to_m(), 9
4204 );
4205 assert_approx_equal(
4206 Distance::from_m(1.0_f64).to_m() * 100.0,
4207 Distance::from_m(1.0_f64).to_cm(), 9
4208 );
4209 assert_approx_equal(
4210 Distance::from_m(0.001_f64).to_m(),
4211 Distance::from_mm(1.0_f64).to_m(), 9
4212 );
4213 assert_approx_equal(
4214 Distance::from_m(1.0_f64).to_m() * 1000.0,
4215 Distance::from_m(1.0_f64).to_mm(), 9
4216 );
4217 assert_approx_equal(
4218 Distance::from_m(1e-06_f64).to_m(),
4219 Distance::from_um(1.0_f64).to_m(), 9
4220 );
4221 assert_approx_equal(
4222 Distance::from_m(1.0_f64).to_m() * 1000000.0,
4223 Distance::from_m(1.0_f64).to_um(), 9
4224 );
4225 assert_approx_equal(
4226 Distance::from_m(1e-09_f64).to_m(),
4227 Distance::from_nm(1.0_f64).to_m(), 9
4228 );
4229 assert_approx_equal(
4230 Distance::from_m(1.0_f64).to_m() * 1000000000.0,
4231 Distance::from_m(1.0_f64).to_nm(), 9
4232 );
4233 assert_approx_equal(
4234 Distance::from_m(1e-12_f64).to_m(),
4235 Distance::from_pm(1.0_f64).to_m(), 9
4236 );
4237 assert_approx_equal(
4238 Distance::from_m(1.0_f64).to_m() * 1000000000000.0,
4239 Distance::from_m(1.0_f64).to_pm(), 9
4240 );
4241 assert_approx_equal(
4242 Distance::from_m(1000.0_f64).to_m(),
4243 Distance::from_km(1.0_f64).to_m(), 9
4244 );
4245 assert_approx_equal(
4246 Distance::from_m(1.0_f64).to_m() * 0.001,
4247 Distance::from_m(1.0_f64).to_km(), 9
4248 );
4249 assert_approx_equal(
4250 Distance::from_m(149597870700.0_f64).to_m(),
4251 Distance::from_au(1.0_f64).to_m(), 9
4252 );
4253 assert_approx_equal(
4254 Distance::from_m(1.0_f64).to_m() * 6.68458712226845e-12,
4255 Distance::from_m(1.0_f64).to_au(), 9
4256 );
4257 assert_approx_equal(
4258 Distance::from_m(3.08568047999355e+16_f64).to_m(),
4259 Distance::from_parsec(1.0_f64).to_m(), 9
4260 );
4261 assert_approx_equal(
4262 Distance::from_m(1.0_f64).to_m() * 3.24077624525171e-17,
4263 Distance::from_m(1.0_f64).to_parsec(), 9
4264 );
4265 assert_approx_equal(
4266 Distance::from_m(9460528169656200.0_f64).to_m(),
4267 Distance::from_lyr(1.0_f64).to_m(), 9
4268 );
4269 assert_approx_equal(
4270 Distance::from_m(1.0_f64).to_m() * 1.05702343681763e-16,
4271 Distance::from_m(1.0_f64).to_lyr(), 9
4272 );
4273 }
4274
4275 #[test]
4276 fn luminosity_units() {
4277 assert_approx_equal(
4278 Luminosity::from_cd(0.001_f64).to_cd(),
4279 Luminosity::from_mcd(1.0_f64).to_cd(), 9
4280 );
4281 assert_approx_equal(
4282 Luminosity::from_cd(1.0_f64).to_cd() * 1000.0,
4283 Luminosity::from_cd(1.0_f64).to_mcd(), 9
4284 );
4285 assert_approx_equal(
4286 Luminosity::from_cd(1e-06_f64).to_cd(),
4287 Luminosity::from_ucd(1.0_f64).to_cd(), 9
4288 );
4289 assert_approx_equal(
4290 Luminosity::from_cd(1.0_f64).to_cd() * 1000000.0,
4291 Luminosity::from_cd(1.0_f64).to_ucd(), 9
4292 );
4293 assert_approx_equal(
4294 Luminosity::from_cd(1e-09_f64).to_cd(),
4295 Luminosity::from_ncd(1.0_f64).to_cd(), 9
4296 );
4297 assert_approx_equal(
4298 Luminosity::from_cd(1.0_f64).to_cd() * 1000000000.0,
4299 Luminosity::from_cd(1.0_f64).to_ncd(), 9
4300 );
4301 assert_approx_equal(
4302 Luminosity::from_cd(1000.0_f64).to_cd(),
4303 Luminosity::from_kcd(1.0_f64).to_cd(), 9
4304 );
4305 assert_approx_equal(
4306 Luminosity::from_cd(1.0_f64).to_cd() * 0.001,
4307 Luminosity::from_cd(1.0_f64).to_kcd(), 9
4308 );
4309 assert_approx_equal(
4310 Luminosity::from_cd(1000000.0_f64).to_cd(),
4311 Luminosity::from_Mcd(1.0_f64).to_cd(), 9
4312 );
4313 assert_approx_equal(
4314 Luminosity::from_cd(1.0_f64).to_cd() * 1e-06,
4315 Luminosity::from_cd(1.0_f64).to_Mcd(), 9
4316 );
4317 assert_approx_equal(
4318 Luminosity::from_cd(1000000000.0_f64).to_cd(),
4319 Luminosity::from_Gcd(1.0_f64).to_cd(), 9
4320 );
4321 assert_approx_equal(
4322 Luminosity::from_cd(1.0_f64).to_cd() * 1e-09,
4323 Luminosity::from_cd(1.0_f64).to_Gcd(), 9
4324 );
4325 }
4326
4327 #[test]
4328 fn mass_units() {
4329 assert_approx_equal(
4330 Mass::from_kg(0.001_f64).to_kg(),
4331 Mass::from_g(1.0_f64).to_kg(), 9
4332 );
4333 assert_approx_equal(
4334 Mass::from_kg(1.0_f64).to_kg() * 1000.0,
4335 Mass::from_kg(1.0_f64).to_g(), 9
4336 );
4337 assert_approx_equal(
4338 Mass::from_kg(1e-06_f64).to_kg(),
4339 Mass::from_mg(1.0_f64).to_kg(), 9
4340 );
4341 assert_approx_equal(
4342 Mass::from_kg(1.0_f64).to_kg() * 1000000.0,
4343 Mass::from_kg(1.0_f64).to_mg(), 9
4344 );
4345 assert_approx_equal(
4346 Mass::from_kg(1e-09_f64).to_kg(),
4347 Mass::from_ug(1.0_f64).to_kg(), 9
4348 );
4349 assert_approx_equal(
4350 Mass::from_kg(1.0_f64).to_kg() * 1000000000.0,
4351 Mass::from_kg(1.0_f64).to_ug(), 9
4352 );
4353 assert_approx_equal(
4354 Mass::from_kg(1e-12_f64).to_kg(),
4355 Mass::from_ng(1.0_f64).to_kg(), 9
4356 );
4357 assert_approx_equal(
4358 Mass::from_kg(1.0_f64).to_kg() * 1000000000000.0,
4359 Mass::from_kg(1.0_f64).to_ng(), 9
4360 );
4361 assert_approx_equal(
4362 Mass::from_kg(1e-15_f64).to_kg(),
4363 Mass::from_pg(1.0_f64).to_kg(), 9
4364 );
4365 assert_approx_equal(
4366 Mass::from_kg(1.0_f64).to_kg() * 1000000000000000.0,
4367 Mass::from_kg(1.0_f64).to_pg(), 9
4368 );
4369 assert_approx_equal(
4370 Mass::from_kg(1000.0_f64).to_kg(),
4371 Mass::from_tons(1.0_f64).to_kg(), 9
4372 );
4373 assert_approx_equal(
4374 Mass::from_kg(1.0_f64).to_kg() * 0.001,
4375 Mass::from_kg(1.0_f64).to_tons(), 9
4376 );
4377 assert_approx_equal(
4378 Mass::from_kg(5.9722e+24_f64).to_kg(),
4379 Mass::from_earth_mass(1.0_f64).to_kg(), 9
4380 );
4381 assert_approx_equal(
4382 Mass::from_kg(1.0_f64).to_kg() * 1.6744248350691502e-25,
4383 Mass::from_kg(1.0_f64).to_earth_mass(), 9
4384 );
4385 assert_approx_equal(
4386 Mass::from_kg(1.8986e+27_f64).to_kg(),
4387 Mass::from_jupiter_mass(1.0_f64).to_kg(), 9
4388 );
4389 assert_approx_equal(
4390 Mass::from_kg(1.0_f64).to_kg() * 5.26703887074687e-28,
4391 Mass::from_kg(1.0_f64).to_jupiter_mass(), 9
4392 );
4393 assert_approx_equal(
4394 Mass::from_kg(1.9885500000000002e+30_f64).to_kg(),
4395 Mass::from_solar_mass(1.0_f64).to_kg(), 9
4396 );
4397 assert_approx_equal(
4398 Mass::from_kg(1.0_f64).to_kg() * 5.0287898217294e-31,
4399 Mass::from_kg(1.0_f64).to_solar_mass(), 9
4400 );
4401 }
4402
4403 #[test]
4404 fn temperature_units() {
4405 assert_approx_equal(
4406 Temperature::from_K(274.1500000000000_f64).to_K(),
4407 Temperature::from_C(1.0_f64).to_K(), 9
4408 );
4409 assert_approx_equal(
4410 Temperature::from_K(1.0_f64).to_K() * -272.1500000000000,
4411 Temperature::from_K(1.0_f64).to_C(), 9
4412 );
4413 assert_approx_equal(
4414 Temperature::from_K(274.1500000000000_f64).to_K(),
4415 Temperature::from_celsius(1.0_f64).to_K(), 9
4416 );
4417 assert_approx_equal(
4418 Temperature::from_K(1.0_f64).to_K() * -272.1500000000000,
4419 Temperature::from_K(1.0_f64).to_celsius(), 9
4420 );
4421 assert_approx_equal(
4422 Temperature::from_K(255.9277777777780_f64).to_K(),
4423 Temperature::from_F(1.0_f64).to_K(), 9
4424 );
4425 assert_approx_equal(
4426 Temperature::from_K(1.0_f64).to_K() * -457.8700000000000,
4427 Temperature::from_K(1.0_f64).to_F(), 9
4428 );
4429 }
4430
4431 #[test]
4432 fn time_units() {
4433 assert_approx_equal(
4434 Time::from_s(0.001_f64).to_s(),
4435 Time::from_ms(1.0_f64).to_s(), 9
4436 );
4437 assert_approx_equal(
4438 Time::from_s(1.0_f64).to_s() * 1000.0,
4439 Time::from_s(1.0_f64).to_ms(), 9
4440 );
4441 assert_approx_equal(
4442 Time::from_s(1e-06_f64).to_s(),
4443 Time::from_us(1.0_f64).to_s(), 9
4444 );
4445 assert_approx_equal(
4446 Time::from_s(1.0_f64).to_s() * 1000000.0,
4447 Time::from_s(1.0_f64).to_us(), 9
4448 );
4449 assert_approx_equal(
4450 Time::from_s(1e-09_f64).to_s(),
4451 Time::from_ns(1.0_f64).to_s(), 9
4452 );
4453 assert_approx_equal(
4454 Time::from_s(1.0_f64).to_s() * 1000000000.0,
4455 Time::from_s(1.0_f64).to_ns(), 9
4456 );
4457 assert_approx_equal(
4458 Time::from_s(1e-12_f64).to_s(),
4459 Time::from_ps(1.0_f64).to_s(), 9
4460 );
4461 assert_approx_equal(
4462 Time::from_s(1.0_f64).to_s() * 1000000000000.0,
4463 Time::from_s(1.0_f64).to_ps(), 9
4464 );
4465 assert_approx_equal(
4466 Time::from_s(60.0_f64).to_s(),
4467 Time::from_min(1.0_f64).to_s(), 9
4468 );
4469 assert_approx_equal(
4470 Time::from_s(1.0_f64).to_s() * 0.0166666666666667,
4471 Time::from_s(1.0_f64).to_min(), 9
4472 );
4473 assert_approx_equal(
4474 Time::from_s(3600.0_f64).to_s(),
4475 Time::from_hr(1.0_f64).to_s(), 9
4476 );
4477 assert_approx_equal(
4478 Time::from_s(1.0_f64).to_s() * 0.0002777777777777,
4479 Time::from_s(1.0_f64).to_hr(), 9
4480 );
4481 assert_approx_equal(
4482 Time::from_s(86400.0_f64).to_s(),
4483 Time::from_days(1.0_f64).to_s(), 9
4484 );
4485 assert_approx_equal(
4486 Time::from_s(1.0_f64).to_s() * 1.15740740740741e-05,
4487 Time::from_s(1.0_f64).to_days(), 9
4488 );
4489 assert_approx_equal(
4490 Time::from_s(604800.0_f64).to_s(),
4491 Time::from_weeks(1.0_f64).to_s(), 9
4492 );
4493 assert_approx_equal(
4494 Time::from_s(1.0_f64).to_s() * 1.65343915343915e-06,
4495 Time::from_s(1.0_f64).to_weeks(), 9
4496 );
4497 assert_approx_equal(
4498 Time::from_s(31556925.19008_f64).to_s(),
4499 Time::from_yr(1.0_f64).to_s(), 9
4500 );
4501 assert_approx_equal(
4502 Time::from_s(1.0_f64).to_s() * 3.16887654287165e-08,
4503 Time::from_s(1.0_f64).to_yr(), 9
4504 );
4505 assert_approx_equal(
4506 Time::from_s(31556925190.08_f64).to_s(),
4507 Time::from_kyr(1.0_f64).to_s(), 9
4508 );
4509 assert_approx_equal(
4510 Time::from_s(1.0_f64).to_s() * 3.16887654287165e-11,
4511 Time::from_s(1.0_f64).to_kyr(), 9
4512 );
4513 assert_approx_equal(
4514 Time::from_s(31556925190080.0_f64).to_s(),
4515 Time::from_Myr(1.0_f64).to_s(), 9
4516 );
4517 assert_approx_equal(
4518 Time::from_s(1.0_f64).to_s() * 3.16887654287165e-14,
4519 Time::from_s(1.0_f64).to_Myr(), 9
4520 );
4521 assert_approx_equal(
4522 Time::from_s(3.155692519008e+16_f64).to_s(),
4523 Time::from_Gyr(1.0_f64).to_s(), 9
4524 );
4525 assert_approx_equal(
4526 Time::from_s(1.0_f64).to_s() * 3.16887654287165e-17,
4527 Time::from_s(1.0_f64).to_Gyr(), 9
4528 );
4529 }
4530
4531 #[test]
4532 fn catalytic_activity_units() {
4533 assert_approx_equal(
4534 CatalyticActivity::from_molps(1.66053906717385e-24_f64).to_molps(),
4535 CatalyticActivity::from_Nps(1.0_f64).to_molps(), 9
4536 );
4537 assert_approx_equal(
4538 CatalyticActivity::from_molps(1.0_f64).to_molps() * 6.02214076e+23,
4539 CatalyticActivity::from_molps(1.0_f64).to_Nps(), 9
4540 );
4541 assert_approx_equal(
4542 CatalyticActivity::from_molps(0.001_f64).to_molps(),
4543 CatalyticActivity::from_mmolps(1.0_f64).to_molps(), 9
4544 );
4545 assert_approx_equal(
4546 CatalyticActivity::from_molps(1.0_f64).to_molps() * 1000.0,
4547 CatalyticActivity::from_molps(1.0_f64).to_mmolps(), 9
4548 );
4549 assert_approx_equal(
4550 CatalyticActivity::from_molps(1e-06_f64).to_molps(),
4551 CatalyticActivity::from_umolps(1.0_f64).to_molps(), 9
4552 );
4553 assert_approx_equal(
4554 CatalyticActivity::from_molps(1.0_f64).to_molps() * 1000000.0,
4555 CatalyticActivity::from_molps(1.0_f64).to_umolps(), 9
4556 );
4557 assert_approx_equal(
4558 CatalyticActivity::from_molps(1e-09_f64).to_molps(),
4559 CatalyticActivity::from_nmolps(1.0_f64).to_molps(), 9
4560 );
4561 assert_approx_equal(
4562 CatalyticActivity::from_molps(1.0_f64).to_molps() * 1000000000.0,
4563 CatalyticActivity::from_molps(1.0_f64).to_nmolps(), 9
4564 );
4565 }
4566
4567 #[test]
4568 fn concentration_units() {
4569 assert_approx_equal(
4570 Concentration::from_molpm3(1.66053906717385e-24_f64).to_molpm3(),
4571 Concentration::from_Npm3(1.0_f64).to_molpm3(), 9
4572 );
4573 assert_approx_equal(
4574 Concentration::from_molpm3(1.0_f64).to_molpm3() * 6.02214076e+23,
4575 Concentration::from_molpm3(1.0_f64).to_Npm3(), 9
4576 );
4577 assert_approx_equal(
4578 Concentration::from_molpm3(1.66053906717385e-24_f64).to_molpm3(),
4579 Concentration::from_count_per_cubic_meter(1.0_f64).to_molpm3(), 9
4580 );
4581 assert_approx_equal(
4582 Concentration::from_molpm3(1.0_f64).to_molpm3() * 6.02214076e+23,
4583 Concentration::from_molpm3(1.0_f64).to_count_per_cubic_meter(), 9
4584 );
4585 assert_approx_equal(
4586 Concentration::from_molpm3(1.66053906717385e-21_f64).to_molpm3(),
4587 Concentration::from_NpL(1.0_f64).to_molpm3(), 9
4588 );
4589 assert_approx_equal(
4590 Concentration::from_molpm3(1.0_f64).to_molpm3() * 6.02214076e+26,
4591 Concentration::from_molpm3(1.0_f64).to_NpL(), 9
4592 );
4593 assert_approx_equal(
4594 Concentration::from_molpm3(1.66053906717385e-21_f64).to_molpm3(),
4595 Concentration::from_count_per_L(1.0_f64).to_molpm3(), 9
4596 );
4597 assert_approx_equal(
4598 Concentration::from_molpm3(1.0_f64).to_molpm3() * 6.02214076e+26,
4599 Concentration::from_molpm3(1.0_f64).to_count_per_L(), 9
4600 );
4601 assert_approx_equal(
4602 Concentration::from_molpm3(1.66053906717385e-18_f64).to_molpm3(),
4603 Concentration::from_Npcc(1.0_f64).to_molpm3(), 9
4604 );
4605 assert_approx_equal(
4606 Concentration::from_molpm3(1.0_f64).to_molpm3() * 6.02214076e+29,
4607 Concentration::from_molpm3(1.0_f64).to_Npcc(), 9
4608 );
4609 assert_approx_equal(
4610 Concentration::from_molpm3(1.66053906717385e-18_f64).to_molpm3(),
4611 Concentration::from_count_per_cc(1.0_f64).to_molpm3(), 9
4612 );
4613 assert_approx_equal(
4614 Concentration::from_molpm3(1.0_f64).to_molpm3() * 6.02214076e+29,
4615 Concentration::from_molpm3(1.0_f64).to_count_per_cc(), 9
4616 );
4617 assert_approx_equal(
4618 Concentration::from_molpm3(1000.0_f64).to_molpm3(),
4619 Concentration::from_M(1.0_f64).to_molpm3(), 9
4620 );
4621 assert_approx_equal(
4622 Concentration::from_molpm3(1.0_f64).to_molpm3() * 0.001,
4623 Concentration::from_molpm3(1.0_f64).to_M(), 9
4624 );
4625 assert_approx_equal(
4626 Concentration::from_molpm3(1000.0_f64).to_molpm3(),
4627 Concentration::from_molarity(1.0_f64).to_molpm3(), 9
4628 );
4629 assert_approx_equal(
4630 Concentration::from_molpm3(1.0_f64).to_molpm3() * 0.001,
4631 Concentration::from_molpm3(1.0_f64).to_molarity(), 9
4632 );
4633 assert_approx_equal(
4634 Concentration::from_molpm3(0.001_f64).to_molpm3(),
4635 Concentration::from_uM(1.0_f64).to_molpm3(), 9
4636 );
4637 assert_approx_equal(
4638 Concentration::from_molpm3(1.0_f64).to_molpm3() * 1000.0,
4639 Concentration::from_molpm3(1.0_f64).to_uM(), 9
4640 );
4641 assert_approx_equal(
4642 Concentration::from_molpm3(1e-06_f64).to_molpm3(),
4643 Concentration::from_nM(1.0_f64).to_molpm3(), 9
4644 );
4645 assert_approx_equal(
4646 Concentration::from_molpm3(1.0_f64).to_molpm3() * 1000000.0,
4647 Concentration::from_molpm3(1.0_f64).to_nM(), 9
4648 );
4649 }
4650
4651 #[test]
4652 fn molality_units() {
4653 assert_approx_equal(
4654 Molality::from_molpkg(0.001_f64).to_molpkg(),
4655 Molality::from_mmolpkg(1.0_f64).to_molpkg(), 9
4656 );
4657 assert_approx_equal(
4658 Molality::from_molpkg(1.0_f64).to_molpkg() * 1000.0,
4659 Molality::from_molpkg(1.0_f64).to_mmolpkg(), 9
4660 );
4661 assert_approx_equal(
4662 Molality::from_molpkg(1e-06_f64).to_molpkg(),
4663 Molality::from_umolpkg(1.0_f64).to_molpkg(), 9
4664 );
4665 assert_approx_equal(
4666 Molality::from_molpkg(1.0_f64).to_molpkg() * 1000000.0,
4667 Molality::from_molpkg(1.0_f64).to_umolpkg(), 9
4668 );
4669 assert_approx_equal(
4670 Molality::from_molpkg(1e-09_f64).to_molpkg(),
4671 Molality::from_nmolpkg(1.0_f64).to_molpkg(), 9
4672 );
4673 assert_approx_equal(
4674 Molality::from_molpkg(1.0_f64).to_molpkg() * 1000000000.0,
4675 Molality::from_molpkg(1.0_f64).to_nmolpkg(), 9
4676 );
4677 assert_approx_equal(
4678 Molality::from_molpkg(0.001_f64).to_molpkg(),
4679 Molality::from_umolpg(1.0_f64).to_molpkg(), 9
4680 );
4681 assert_approx_equal(
4682 Molality::from_molpkg(1.0_f64).to_molpkg() * 1000.0,
4683 Molality::from_molpkg(1.0_f64).to_umolpg(), 9
4684 );
4685 assert_approx_equal(
4686 Molality::from_molpkg(1e-06_f64).to_molpkg(),
4687 Molality::from_nmolpg(1.0_f64).to_molpkg(), 9
4688 );
4689 assert_approx_equal(
4690 Molality::from_molpkg(1.0_f64).to_molpkg() * 1000000.0,
4691 Molality::from_molpkg(1.0_f64).to_nmolpg(), 9
4692 );
4693 }
4694
4695 #[test]
4696 fn molar_mass_units() {
4697 assert_approx_equal(
4698 MolarMass::from_kgpmol(0.001_f64).to_kgpmol(),
4699 MolarMass::from_gpmol(1.0_f64).to_kgpmol(), 9
4700 );
4701 assert_approx_equal(
4702 MolarMass::from_kgpmol(1.0_f64).to_kgpmol() * 1000.0,
4703 MolarMass::from_kgpmol(1.0_f64).to_gpmol(), 9
4704 );
4705 assert_approx_equal(
4706 MolarMass::from_kgpmol(0.001_f64).to_kgpmol(),
4707 MolarMass::from_grams_per_mole(1.0_f64).to_kgpmol(), 9
4708 );
4709 assert_approx_equal(
4710 MolarMass::from_kgpmol(1.0_f64).to_kgpmol() * 1000.0,
4711 MolarMass::from_kgpmol(1.0_f64).to_grams_per_mole(), 9
4712 );
4713 }
4714
4715 #[test]
4716 fn inverse_specific_heat_capacity_units() {
4717 assert_approx_equal(
4718 InverseSpecificHeatCapacity::from_kgK_per_J(0.001_f64).to_kgK_per_J(),
4719 InverseSpecificHeatCapacity::from_grams_kelvin_per_joule(1.0_f64).to_kgK_per_J(), 9
4720 );
4721 assert_approx_equal(
4722 InverseSpecificHeatCapacity::from_kgK_per_J(1.0_f64).to_kgK_per_J() * 1000.0,
4723 InverseSpecificHeatCapacity::from_kgK_per_J(1.0_f64).to_grams_kelvin_per_joule(), 9
4724 );
4725 assert_approx_equal(
4726 InverseSpecificHeatCapacity::from_kgK_per_J(0.001_f64).to_kgK_per_J(),
4727 InverseSpecificHeatCapacity::from_gK_per_J(1.0_f64).to_kgK_per_J(), 9
4728 );
4729 assert_approx_equal(
4730 InverseSpecificHeatCapacity::from_kgK_per_J(1.0_f64).to_kgK_per_J() * 1000.0,
4731 InverseSpecificHeatCapacity::from_kgK_per_J(1.0_f64).to_gK_per_J(), 9
4732 );
4733 }
4734
4735 #[test]
4736 fn capacitance_units() {
4737 assert_approx_equal(
4738 Capacitance::from_F(0.001_f64).to_F(),
4739 Capacitance::from_mF(1.0_f64).to_F(), 9
4740 );
4741 assert_approx_equal(
4742 Capacitance::from_F(1.0_f64).to_F() * 1000.0,
4743 Capacitance::from_F(1.0_f64).to_mF(), 9
4744 );
4745 assert_approx_equal(
4746 Capacitance::from_F(1e-06_f64).to_F(),
4747 Capacitance::from_uF(1.0_f64).to_F(), 9
4748 );
4749 assert_approx_equal(
4750 Capacitance::from_F(1.0_f64).to_F() * 1000000.0,
4751 Capacitance::from_F(1.0_f64).to_uF(), 9
4752 );
4753 assert_approx_equal(
4754 Capacitance::from_F(1e-09_f64).to_F(),
4755 Capacitance::from_nF(1.0_f64).to_F(), 9
4756 );
4757 assert_approx_equal(
4758 Capacitance::from_F(1.0_f64).to_F() * 1000000000.0,
4759 Capacitance::from_F(1.0_f64).to_nF(), 9
4760 );
4761 assert_approx_equal(
4762 Capacitance::from_F(1e-12_f64).to_F(),
4763 Capacitance::from_pF(1.0_f64).to_F(), 9
4764 );
4765 assert_approx_equal(
4766 Capacitance::from_F(1.0_f64).to_F() * 1000000000000.0,
4767 Capacitance::from_F(1.0_f64).to_pF(), 9
4768 );
4769 assert_approx_equal(
4770 Capacitance::from_F(1000.0_f64).to_F(),
4771 Capacitance::from_kF(1.0_f64).to_F(), 9
4772 );
4773 assert_approx_equal(
4774 Capacitance::from_F(1.0_f64).to_F() * 0.001,
4775 Capacitance::from_F(1.0_f64).to_kF(), 9
4776 );
4777 assert_approx_equal(
4778 Capacitance::from_F(1000000.0_f64).to_F(),
4779 Capacitance::from_MF(1.0_f64).to_F(), 9
4780 );
4781 assert_approx_equal(
4782 Capacitance::from_F(1.0_f64).to_F() * 1e-06,
4783 Capacitance::from_F(1.0_f64).to_MF(), 9
4784 );
4785 assert_approx_equal(
4786 Capacitance::from_F(1000000000.0_f64).to_F(),
4787 Capacitance::from_GF(1.0_f64).to_F(), 9
4788 );
4789 assert_approx_equal(
4790 Capacitance::from_F(1.0_f64).to_F() * 1e-09,
4791 Capacitance::from_F(1.0_f64).to_GF(), 9
4792 );
4793 }
4794
4795 #[test]
4796 fn charge_units() {
4797 assert_approx_equal(
4798 Charge::from_C(0.001_f64).to_C(),
4799 Charge::from_mC(1.0_f64).to_C(), 9
4800 );
4801 assert_approx_equal(
4802 Charge::from_C(1.0_f64).to_C() * 1000.0,
4803 Charge::from_C(1.0_f64).to_mC(), 9
4804 );
4805 assert_approx_equal(
4806 Charge::from_C(1e-06_f64).to_C(),
4807 Charge::from_uC(1.0_f64).to_C(), 9
4808 );
4809 assert_approx_equal(
4810 Charge::from_C(1.0_f64).to_C() * 1000000.0,
4811 Charge::from_C(1.0_f64).to_uC(), 9
4812 );
4813 assert_approx_equal(
4814 Charge::from_C(1e-09_f64).to_C(),
4815 Charge::from_nC(1.0_f64).to_C(), 9
4816 );
4817 assert_approx_equal(
4818 Charge::from_C(1.0_f64).to_C() * 1000000000.0,
4819 Charge::from_C(1.0_f64).to_nC(), 9
4820 );
4821 assert_approx_equal(
4822 Charge::from_C(1000.0_f64).to_C(),
4823 Charge::from_kC(1.0_f64).to_C(), 9
4824 );
4825 assert_approx_equal(
4826 Charge::from_C(1.0_f64).to_C() * 0.001,
4827 Charge::from_C(1.0_f64).to_kC(), 9
4828 );
4829 assert_approx_equal(
4830 Charge::from_C(1000000.0_f64).to_C(),
4831 Charge::from_MC(1.0_f64).to_C(), 9
4832 );
4833 assert_approx_equal(
4834 Charge::from_C(1.0_f64).to_C() * 1e-06,
4835 Charge::from_C(1.0_f64).to_MC(), 9
4836 );
4837 assert_approx_equal(
4838 Charge::from_C(1000000000.0_f64).to_C(),
4839 Charge::from_GC(1.0_f64).to_C(), 9
4840 );
4841 assert_approx_equal(
4842 Charge::from_C(1.0_f64).to_C() * 1e-09,
4843 Charge::from_C(1.0_f64).to_GC(), 9
4844 );
4845 assert_approx_equal(
4846 Charge::from_C(1.6021766340000001e-19_f64).to_C(),
4847 Charge::from_p(1.0_f64).to_C(), 9
4848 );
4849 assert_approx_equal(
4850 Charge::from_C(1.0_f64).to_C() * 6.24150907446076e+18,
4851 Charge::from_C(1.0_f64).to_p(), 9
4852 );
4853 assert_approx_equal(
4854 Charge::from_C(-1.6021766340000001e-19_f64).to_C(),
4855 Charge::from_e(1.0_f64).to_C(), 9
4856 );
4857 assert_approx_equal(
4858 Charge::from_C(1.0_f64).to_C() * -6.24150907446076e+18,
4859 Charge::from_C(1.0_f64).to_e(), 9
4860 );
4861 }
4862
4863 #[test]
4864 fn conductance_units() {
4865 assert_approx_equal(
4866 Conductance::from_S(0.001_f64).to_S(),
4867 Conductance::from_mS(1.0_f64).to_S(), 9
4868 );
4869 assert_approx_equal(
4870 Conductance::from_S(1.0_f64).to_S() * 1000.0,
4871 Conductance::from_S(1.0_f64).to_mS(), 9
4872 );
4873 assert_approx_equal(
4874 Conductance::from_S(1e-06_f64).to_S(),
4875 Conductance::from_uS(1.0_f64).to_S(), 9
4876 );
4877 assert_approx_equal(
4878 Conductance::from_S(1.0_f64).to_S() * 1000000.0,
4879 Conductance::from_S(1.0_f64).to_uS(), 9
4880 );
4881 assert_approx_equal(
4882 Conductance::from_S(1e-09_f64).to_S(),
4883 Conductance::from_nS(1.0_f64).to_S(), 9
4884 );
4885 assert_approx_equal(
4886 Conductance::from_S(1.0_f64).to_S() * 1000000000.0,
4887 Conductance::from_S(1.0_f64).to_nS(), 9
4888 );
4889 assert_approx_equal(
4890 Conductance::from_S(1000.0_f64).to_S(),
4891 Conductance::from_kS(1.0_f64).to_S(), 9
4892 );
4893 assert_approx_equal(
4894 Conductance::from_S(1.0_f64).to_S() * 0.001,
4895 Conductance::from_S(1.0_f64).to_kS(), 9
4896 );
4897 assert_approx_equal(
4898 Conductance::from_S(1000000.0_f64).to_S(),
4899 Conductance::from_MS(1.0_f64).to_S(), 9
4900 );
4901 assert_approx_equal(
4902 Conductance::from_S(1.0_f64).to_S() * 1e-06,
4903 Conductance::from_S(1.0_f64).to_MS(), 9
4904 );
4905 assert_approx_equal(
4906 Conductance::from_S(1000000000.0_f64).to_S(),
4907 Conductance::from_GS(1.0_f64).to_S(), 9
4908 );
4909 assert_approx_equal(
4910 Conductance::from_S(1.0_f64).to_S() * 1e-09,
4911 Conductance::from_S(1.0_f64).to_GS(), 9
4912 );
4913 }
4914
4915 #[test]
4916 fn illuminance_units() {
4917 assert_approx_equal(
4918 Illuminance::from_lux(0.001_f64).to_lux(),
4919 Illuminance::from_mlux(1.0_f64).to_lux(), 9
4920 );
4921 assert_approx_equal(
4922 Illuminance::from_lux(1.0_f64).to_lux() * 1000.0,
4923 Illuminance::from_lux(1.0_f64).to_mlux(), 9
4924 );
4925 assert_approx_equal(
4926 Illuminance::from_lux(1e-06_f64).to_lux(),
4927 Illuminance::from_ulux(1.0_f64).to_lux(), 9
4928 );
4929 assert_approx_equal(
4930 Illuminance::from_lux(1.0_f64).to_lux() * 1000000.0,
4931 Illuminance::from_lux(1.0_f64).to_ulux(), 9
4932 );
4933 assert_approx_equal(
4934 Illuminance::from_lux(1e-09_f64).to_lux(),
4935 Illuminance::from_nlux(1.0_f64).to_lux(), 9
4936 );
4937 assert_approx_equal(
4938 Illuminance::from_lux(1.0_f64).to_lux() * 1000000000.0,
4939 Illuminance::from_lux(1.0_f64).to_nlux(), 9
4940 );
4941 assert_approx_equal(
4942 Illuminance::from_lux(1000.0_f64).to_lux(),
4943 Illuminance::from_klux(1.0_f64).to_lux(), 9
4944 );
4945 assert_approx_equal(
4946 Illuminance::from_lux(1.0_f64).to_lux() * 0.001,
4947 Illuminance::from_lux(1.0_f64).to_klux(), 9
4948 );
4949 assert_approx_equal(
4950 Illuminance::from_lux(1000000.0_f64).to_lux(),
4951 Illuminance::from_Mlux(1.0_f64).to_lux(), 9
4952 );
4953 assert_approx_equal(
4954 Illuminance::from_lux(1.0_f64).to_lux() * 1e-06,
4955 Illuminance::from_lux(1.0_f64).to_Mlux(), 9
4956 );
4957 assert_approx_equal(
4958 Illuminance::from_lux(1000000000.0_f64).to_lux(),
4959 Illuminance::from_Glux(1.0_f64).to_lux(), 9
4960 );
4961 assert_approx_equal(
4962 Illuminance::from_lux(1.0_f64).to_lux() * 1e-09,
4963 Illuminance::from_lux(1.0_f64).to_Glux(), 9
4964 );
4965 }
4966
4967 #[test]
4968 fn inductance_units() {
4969 assert_approx_equal(
4970 Inductance::from_H(0.001_f64).to_H(),
4971 Inductance::from_mH(1.0_f64).to_H(), 9
4972 );
4973 assert_approx_equal(
4974 Inductance::from_H(1.0_f64).to_H() * 1000.0,
4975 Inductance::from_H(1.0_f64).to_mH(), 9
4976 );
4977 assert_approx_equal(
4978 Inductance::from_H(1e-06_f64).to_H(),
4979 Inductance::from_uH(1.0_f64).to_H(), 9
4980 );
4981 assert_approx_equal(
4982 Inductance::from_H(1.0_f64).to_H() * 1000000.0,
4983 Inductance::from_H(1.0_f64).to_uH(), 9
4984 );
4985 assert_approx_equal(
4986 Inductance::from_H(1e-09_f64).to_H(),
4987 Inductance::from_nH(1.0_f64).to_H(), 9
4988 );
4989 assert_approx_equal(
4990 Inductance::from_H(1.0_f64).to_H() * 1000000000.0,
4991 Inductance::from_H(1.0_f64).to_nH(), 9
4992 );
4993 assert_approx_equal(
4994 Inductance::from_H(1000.0_f64).to_H(),
4995 Inductance::from_kH(1.0_f64).to_H(), 9
4996 );
4997 assert_approx_equal(
4998 Inductance::from_H(1.0_f64).to_H() * 0.001,
4999 Inductance::from_H(1.0_f64).to_kH(), 9
5000 );
5001 assert_approx_equal(
5002 Inductance::from_H(1000000.0_f64).to_H(),
5003 Inductance::from_MH(1.0_f64).to_H(), 9
5004 );
5005 assert_approx_equal(
5006 Inductance::from_H(1.0_f64).to_H() * 1e-06,
5007 Inductance::from_H(1.0_f64).to_MH(), 9
5008 );
5009 assert_approx_equal(
5010 Inductance::from_H(1000000000.0_f64).to_H(),
5011 Inductance::from_GH(1.0_f64).to_H(), 9
5012 );
5013 assert_approx_equal(
5014 Inductance::from_H(1.0_f64).to_H() * 1e-09,
5015 Inductance::from_H(1.0_f64).to_GH(), 9
5016 );
5017 }
5018
5019 #[test]
5020 fn luminous_flux_units() {
5021 assert_approx_equal(
5022 LuminousFlux::from_lm(0.001_f64).to_lm(),
5023 LuminousFlux::from_mlm(1.0_f64).to_lm(), 9
5024 );
5025 assert_approx_equal(
5026 LuminousFlux::from_lm(1.0_f64).to_lm() * 1000.0,
5027 LuminousFlux::from_lm(1.0_f64).to_mlm(), 9
5028 );
5029 assert_approx_equal(
5030 LuminousFlux::from_lm(1e-06_f64).to_lm(),
5031 LuminousFlux::from_ulm(1.0_f64).to_lm(), 9
5032 );
5033 assert_approx_equal(
5034 LuminousFlux::from_lm(1.0_f64).to_lm() * 1000000.0,
5035 LuminousFlux::from_lm(1.0_f64).to_ulm(), 9
5036 );
5037 assert_approx_equal(
5038 LuminousFlux::from_lm(1e-09_f64).to_lm(),
5039 LuminousFlux::from_nlm(1.0_f64).to_lm(), 9
5040 );
5041 assert_approx_equal(
5042 LuminousFlux::from_lm(1.0_f64).to_lm() * 1000000000.0,
5043 LuminousFlux::from_lm(1.0_f64).to_nlm(), 9
5044 );
5045 assert_approx_equal(
5046 LuminousFlux::from_lm(1000.0_f64).to_lm(),
5047 LuminousFlux::from_klm(1.0_f64).to_lm(), 9
5048 );
5049 assert_approx_equal(
5050 LuminousFlux::from_lm(1.0_f64).to_lm() * 0.001,
5051 LuminousFlux::from_lm(1.0_f64).to_klm(), 9
5052 );
5053 assert_approx_equal(
5054 LuminousFlux::from_lm(1000000.0_f64).to_lm(),
5055 LuminousFlux::from_Mlm(1.0_f64).to_lm(), 9
5056 );
5057 assert_approx_equal(
5058 LuminousFlux::from_lm(1.0_f64).to_lm() * 1e-06,
5059 LuminousFlux::from_lm(1.0_f64).to_Mlm(), 9
5060 );
5061 assert_approx_equal(
5062 LuminousFlux::from_lm(1000000000.0_f64).to_lm(),
5063 LuminousFlux::from_Glm(1.0_f64).to_lm(), 9
5064 );
5065 assert_approx_equal(
5066 LuminousFlux::from_lm(1.0_f64).to_lm() * 1e-09,
5067 LuminousFlux::from_lm(1.0_f64).to_Glm(), 9
5068 );
5069 }
5070
5071 #[test]
5072 fn magnetic_flux_units() {
5073 assert_approx_equal(
5074 MagneticFlux::from_Wb(0.001_f64).to_Wb(),
5075 MagneticFlux::from_mWb(1.0_f64).to_Wb(), 9
5076 );
5077 assert_approx_equal(
5078 MagneticFlux::from_Wb(1.0_f64).to_Wb() * 1000.0,
5079 MagneticFlux::from_Wb(1.0_f64).to_mWb(), 9
5080 );
5081 assert_approx_equal(
5082 MagneticFlux::from_Wb(1e-06_f64).to_Wb(),
5083 MagneticFlux::from_uWb(1.0_f64).to_Wb(), 9
5084 );
5085 assert_approx_equal(
5086 MagneticFlux::from_Wb(1.0_f64).to_Wb() * 1000000.0,
5087 MagneticFlux::from_Wb(1.0_f64).to_uWb(), 9
5088 );
5089 assert_approx_equal(
5090 MagneticFlux::from_Wb(1e-09_f64).to_Wb(),
5091 MagneticFlux::from_nWb(1.0_f64).to_Wb(), 9
5092 );
5093 assert_approx_equal(
5094 MagneticFlux::from_Wb(1.0_f64).to_Wb() * 1000000000.0,
5095 MagneticFlux::from_Wb(1.0_f64).to_nWb(), 9
5096 );
5097 assert_approx_equal(
5098 MagneticFlux::from_Wb(1000.0_f64).to_Wb(),
5099 MagneticFlux::from_kWb(1.0_f64).to_Wb(), 9
5100 );
5101 assert_approx_equal(
5102 MagneticFlux::from_Wb(1.0_f64).to_Wb() * 0.001,
5103 MagneticFlux::from_Wb(1.0_f64).to_kWb(), 9
5104 );
5105 assert_approx_equal(
5106 MagneticFlux::from_Wb(1000000.0_f64).to_Wb(),
5107 MagneticFlux::from_MWb(1.0_f64).to_Wb(), 9
5108 );
5109 assert_approx_equal(
5110 MagneticFlux::from_Wb(1.0_f64).to_Wb() * 1e-06,
5111 MagneticFlux::from_Wb(1.0_f64).to_MWb(), 9
5112 );
5113 assert_approx_equal(
5114 MagneticFlux::from_Wb(1000000000.0_f64).to_Wb(),
5115 MagneticFlux::from_GWb(1.0_f64).to_Wb(), 9
5116 );
5117 assert_approx_equal(
5118 MagneticFlux::from_Wb(1.0_f64).to_Wb() * 1e-09,
5119 MagneticFlux::from_Wb(1.0_f64).to_GWb(), 9
5120 );
5121 }
5122
5123 #[test]
5124 fn magnetic_flux_density_units() {
5125 assert_approx_equal(
5126 MagneticFluxDensity::from_T(0.001_f64).to_T(),
5127 MagneticFluxDensity::from_mT(1.0_f64).to_T(), 9
5128 );
5129 assert_approx_equal(
5130 MagneticFluxDensity::from_T(1.0_f64).to_T() * 1000.0,
5131 MagneticFluxDensity::from_T(1.0_f64).to_mT(), 9
5132 );
5133 assert_approx_equal(
5134 MagneticFluxDensity::from_T(1e-06_f64).to_T(),
5135 MagneticFluxDensity::from_uT(1.0_f64).to_T(), 9
5136 );
5137 assert_approx_equal(
5138 MagneticFluxDensity::from_T(1.0_f64).to_T() * 1000000.0,
5139 MagneticFluxDensity::from_T(1.0_f64).to_uT(), 9
5140 );
5141 assert_approx_equal(
5142 MagneticFluxDensity::from_T(1e-09_f64).to_T(),
5143 MagneticFluxDensity::from_nT(1.0_f64).to_T(), 9
5144 );
5145 assert_approx_equal(
5146 MagneticFluxDensity::from_T(1.0_f64).to_T() * 1000000000.0,
5147 MagneticFluxDensity::from_T(1.0_f64).to_nT(), 9
5148 );
5149 assert_approx_equal(
5150 MagneticFluxDensity::from_T(1000.0_f64).to_T(),
5151 MagneticFluxDensity::from_kT(1.0_f64).to_T(), 9
5152 );
5153 assert_approx_equal(
5154 MagneticFluxDensity::from_T(1.0_f64).to_T() * 0.001,
5155 MagneticFluxDensity::from_T(1.0_f64).to_kT(), 9
5156 );
5157 assert_approx_equal(
5158 MagneticFluxDensity::from_T(1000000.0_f64).to_T(),
5159 MagneticFluxDensity::from_MT(1.0_f64).to_T(), 9
5160 );
5161 assert_approx_equal(
5162 MagneticFluxDensity::from_T(1.0_f64).to_T() * 1e-06,
5163 MagneticFluxDensity::from_T(1.0_f64).to_MT(), 9
5164 );
5165 assert_approx_equal(
5166 MagneticFluxDensity::from_T(1000000000.0_f64).to_T(),
5167 MagneticFluxDensity::from_GT(1.0_f64).to_T(), 9
5168 );
5169 assert_approx_equal(
5170 MagneticFluxDensity::from_T(1.0_f64).to_T() * 1e-09,
5171 MagneticFluxDensity::from_T(1.0_f64).to_GT(), 9
5172 );
5173 }
5174
5175 #[test]
5176 fn resistance_units() {
5177 assert_approx_equal(
5178 Resistance::from_Ohm(0.001_f64).to_Ohm(),
5179 Resistance::from_mOhm(1.0_f64).to_Ohm(), 9
5180 );
5181 assert_approx_equal(
5182 Resistance::from_Ohm(1.0_f64).to_Ohm() * 1000.0,
5183 Resistance::from_Ohm(1.0_f64).to_mOhm(), 9
5184 );
5185 assert_approx_equal(
5186 Resistance::from_Ohm(1e-06_f64).to_Ohm(),
5187 Resistance::from_uOhm(1.0_f64).to_Ohm(), 9
5188 );
5189 assert_approx_equal(
5190 Resistance::from_Ohm(1.0_f64).to_Ohm() * 1000000.0,
5191 Resistance::from_Ohm(1.0_f64).to_uOhm(), 9
5192 );
5193 assert_approx_equal(
5194 Resistance::from_Ohm(1e-09_f64).to_Ohm(),
5195 Resistance::from_nOhm(1.0_f64).to_Ohm(), 9
5196 );
5197 assert_approx_equal(
5198 Resistance::from_Ohm(1.0_f64).to_Ohm() * 1000000000.0,
5199 Resistance::from_Ohm(1.0_f64).to_nOhm(), 9
5200 );
5201 assert_approx_equal(
5202 Resistance::from_Ohm(1000.0_f64).to_Ohm(),
5203 Resistance::from_kOhm(1.0_f64).to_Ohm(), 9
5204 );
5205 assert_approx_equal(
5206 Resistance::from_Ohm(1.0_f64).to_Ohm() * 0.001,
5207 Resistance::from_Ohm(1.0_f64).to_kOhm(), 9
5208 );
5209 assert_approx_equal(
5210 Resistance::from_Ohm(1000000.0_f64).to_Ohm(),
5211 Resistance::from_MOhm(1.0_f64).to_Ohm(), 9
5212 );
5213 assert_approx_equal(
5214 Resistance::from_Ohm(1.0_f64).to_Ohm() * 1e-06,
5215 Resistance::from_Ohm(1.0_f64).to_MOhm(), 9
5216 );
5217 assert_approx_equal(
5218 Resistance::from_Ohm(1000000000.0_f64).to_Ohm(),
5219 Resistance::from_GOhm(1.0_f64).to_Ohm(), 9
5220 );
5221 assert_approx_equal(
5222 Resistance::from_Ohm(1.0_f64).to_Ohm() * 1e-09,
5223 Resistance::from_Ohm(1.0_f64).to_GOhm(), 9
5224 );
5225 }
5226
5227 #[test]
5228 fn voltage_units() {
5229 assert_approx_equal(
5230 Voltage::from_V(0.001_f64).to_V(),
5231 Voltage::from_mV(1.0_f64).to_V(), 9
5232 );
5233 assert_approx_equal(
5234 Voltage::from_V(1.0_f64).to_V() * 1000.0,
5235 Voltage::from_V(1.0_f64).to_mV(), 9
5236 );
5237 assert_approx_equal(
5238 Voltage::from_V(1e-06_f64).to_V(),
5239 Voltage::from_uV(1.0_f64).to_V(), 9
5240 );
5241 assert_approx_equal(
5242 Voltage::from_V(1.0_f64).to_V() * 1000000.0,
5243 Voltage::from_V(1.0_f64).to_uV(), 9
5244 );
5245 assert_approx_equal(
5246 Voltage::from_V(1e-09_f64).to_V(),
5247 Voltage::from_nV(1.0_f64).to_V(), 9
5248 );
5249 assert_approx_equal(
5250 Voltage::from_V(1.0_f64).to_V() * 1000000000.0,
5251 Voltage::from_V(1.0_f64).to_nV(), 9
5252 );
5253 assert_approx_equal(
5254 Voltage::from_V(1000.0_f64).to_V(),
5255 Voltage::from_kV(1.0_f64).to_V(), 9
5256 );
5257 assert_approx_equal(
5258 Voltage::from_V(1.0_f64).to_V() * 0.001,
5259 Voltage::from_V(1.0_f64).to_kV(), 9
5260 );
5261 assert_approx_equal(
5262 Voltage::from_V(1000000.0_f64).to_V(),
5263 Voltage::from_MV(1.0_f64).to_V(), 9
5264 );
5265 assert_approx_equal(
5266 Voltage::from_V(1.0_f64).to_V() * 1e-06,
5267 Voltage::from_V(1.0_f64).to_MV(), 9
5268 );
5269 assert_approx_equal(
5270 Voltage::from_V(1000000000.0_f64).to_V(),
5271 Voltage::from_GV(1.0_f64).to_V(), 9
5272 );
5273 assert_approx_equal(
5274 Voltage::from_V(1.0_f64).to_V() * 1e-09,
5275 Voltage::from_V(1.0_f64).to_GV(), 9
5276 );
5277 }
5278
5279 #[test]
5280 fn angle_units() {
5281 assert_approx_equal(
5282 Angle::from_rad(0.0174532925199433_f64).to_rad(),
5283 Angle::from_degrees(1.0_f64).to_rad(), 9
5284 );
5285 assert_approx_equal(
5286 Angle::from_rad(1.0_f64).to_rad() * 57.2957795130823,
5287 Angle::from_rad(1.0_f64).to_degrees(), 9
5288 );
5289 assert_approx_equal(
5290 Angle::from_rad(0.0174532925199433_f64).to_rad(),
5291 Angle::from_deg(1.0_f64).to_rad(), 9
5292 );
5293 assert_approx_equal(
5294 Angle::from_rad(1.0_f64).to_rad() * 57.2957795130823,
5295 Angle::from_rad(1.0_f64).to_deg(), 9
5296 );
5297 }
5298
5299 #[test]
5300 fn area_units() {
5301 assert_approx_equal(
5302 Area::from_m2(0.0001_f64).to_m2(),
5303 Area::from_cm2(1.0_f64).to_m2(), 9
5304 );
5305 assert_approx_equal(
5306 Area::from_m2(1.0_f64).to_m2() * 10000.0,
5307 Area::from_m2(1.0_f64).to_cm2(), 9
5308 );
5309 assert_approx_equal(
5310 Area::from_m2(0.0001_f64).to_m2(),
5311 Area::from_square_cm(1.0_f64).to_m2(), 9
5312 );
5313 assert_approx_equal(
5314 Area::from_m2(1.0_f64).to_m2() * 10000.0,
5315 Area::from_m2(1.0_f64).to_square_cm(), 9
5316 );
5317 assert_approx_equal(
5318 Area::from_m2(1e-06_f64).to_m2(),
5319 Area::from_mm2(1.0_f64).to_m2(), 9
5320 );
5321 assert_approx_equal(
5322 Area::from_m2(1.0_f64).to_m2() * 1000000.0,
5323 Area::from_m2(1.0_f64).to_mm2(), 9
5324 );
5325 assert_approx_equal(
5326 Area::from_m2(1e-12_f64).to_m2(),
5327 Area::from_um2(1.0_f64).to_m2(), 9
5328 );
5329 assert_approx_equal(
5330 Area::from_m2(1.0_f64).to_m2() * 1000000000000.0,
5331 Area::from_m2(1.0_f64).to_um2(), 9
5332 );
5333 assert_approx_equal(
5334 Area::from_m2(1e-18_f64).to_m2(),
5335 Area::from_nm2(1.0_f64).to_m2(), 9
5336 );
5337 assert_approx_equal(
5338 Area::from_m2(1.0_f64).to_m2() * 1e+18,
5339 Area::from_m2(1.0_f64).to_nm2(), 9
5340 );
5341 assert_approx_equal(
5342 Area::from_m2(1000000.0_f64).to_m2(),
5343 Area::from_km2(1.0_f64).to_m2(), 9
5344 );
5345 assert_approx_equal(
5346 Area::from_m2(1.0_f64).to_m2() * 1e-06,
5347 Area::from_m2(1.0_f64).to_km2(), 9
5348 );
5349 }
5350
5351 #[test]
5352 fn volume_units() {
5353 assert_approx_equal(
5354 Volume::from_m3(1e-06_f64).to_m3(),
5355 Volume::from_cc(1.0_f64).to_m3(), 9
5356 );
5357 assert_approx_equal(
5358 Volume::from_m3(1.0_f64).to_m3() * 1000000.0,
5359 Volume::from_m3(1.0_f64).to_cc(), 9
5360 );
5361 assert_approx_equal(
5362 Volume::from_m3(0.001_f64).to_m3(),
5363 Volume::from_L(1.0_f64).to_m3(), 9
5364 );
5365 assert_approx_equal(
5366 Volume::from_m3(1.0_f64).to_m3() * 1000.0,
5367 Volume::from_m3(1.0_f64).to_L(), 9
5368 );
5369 assert_approx_equal(
5370 Volume::from_m3(0.001_f64).to_m3(),
5371 Volume::from_liters(1.0_f64).to_m3(), 9
5372 );
5373 assert_approx_equal(
5374 Volume::from_m3(1.0_f64).to_m3() * 1000.0,
5375 Volume::from_m3(1.0_f64).to_liters(), 9
5376 );
5377 assert_approx_equal(
5378 Volume::from_m3(1e-06_f64).to_m3(),
5379 Volume::from_mL(1.0_f64).to_m3(), 9
5380 );
5381 assert_approx_equal(
5382 Volume::from_m3(1.0_f64).to_m3() * 1000000.0,
5383 Volume::from_m3(1.0_f64).to_mL(), 9
5384 );
5385 assert_approx_equal(
5386 Volume::from_m3(1e-09_f64).to_m3(),
5387 Volume::from_uL(1.0_f64).to_m3(), 9
5388 );
5389 assert_approx_equal(
5390 Volume::from_m3(1.0_f64).to_m3() * 1000000000.0,
5391 Volume::from_m3(1.0_f64).to_uL(), 9
5392 );
5393 assert_approx_equal(
5394 Volume::from_m3(1e-12_f64).to_m3(),
5395 Volume::from_nL(1.0_f64).to_m3(), 9
5396 );
5397 assert_approx_equal(
5398 Volume::from_m3(1.0_f64).to_m3() * 1000000000000.0,
5399 Volume::from_m3(1.0_f64).to_nL(), 9
5400 );
5401 assert_approx_equal(
5402 Volume::from_m3(1e-15_f64).to_m3(),
5403 Volume::from_pL(1.0_f64).to_m3(), 9
5404 );
5405 assert_approx_equal(
5406 Volume::from_m3(1.0_f64).to_m3() * 1000000000000000.0,
5407 Volume::from_m3(1.0_f64).to_pL(), 9
5408 );
5409 assert_approx_equal(
5410 Volume::from_m3(1000.0_f64).to_m3(),
5411 Volume::from_ML(1.0_f64).to_m3(), 9
5412 );
5413 assert_approx_equal(
5414 Volume::from_m3(1.0_f64).to_m3() * 0.001,
5415 Volume::from_m3(1.0_f64).to_ML(), 9
5416 );
5417 assert_approx_equal(
5418 Volume::from_m3(1000000.0_f64).to_m3(),
5419 Volume::from_GL(1.0_f64).to_m3(), 9
5420 );
5421 assert_approx_equal(
5422 Volume::from_m3(1.0_f64).to_m3() * 1e-06,
5423 Volume::from_m3(1.0_f64).to_GL(), 9
5424 );
5425 }
5426
5427 #[test]
5428 fn acceleration_units() {
5429 assert_approx_equal(
5430 Acceleration::from_mps2(0.001_f64).to_mps2(),
5431 Acceleration::from_mmps2(1.0_f64).to_mps2(), 9
5432 );
5433 assert_approx_equal(
5434 Acceleration::from_mps2(1.0_f64).to_mps2() * 1000.0,
5435 Acceleration::from_mps2(1.0_f64).to_mmps2(), 9
5436 );
5437 assert_approx_equal(
5438 Acceleration::from_mps2(1e-06_f64).to_mps2(),
5439 Acceleration::from_kilometers_per_hour_squared(1.0_f64).to_mps2(), 9
5440 );
5441 assert_approx_equal(
5442 Acceleration::from_mps2(1.0_f64).to_mps2() * 1000000.0,
5443 Acceleration::from_mps2(1.0_f64).to_kilometers_per_hour_squared(), 9
5444 );
5445 assert_approx_equal(
5446 Acceleration::from_mps2(7.71604938271605e-05_f64).to_mps2(),
5447 Acceleration::from_kph2(1.0_f64).to_mps2(), 9
5448 );
5449 assert_approx_equal(
5450 Acceleration::from_mps2(1.0_f64).to_mps2() * 12960.0,
5451 Acceleration::from_mps2(1.0_f64).to_kph2(), 9
5452 );
5453 }
5454
5455 #[test]
5456 fn angular_acceleration_units() {
5457 assert_approx_equal(
5458 AngularAcceleration::from_radps2(0.0174532925199433_f64).to_radps2(),
5459 AngularAcceleration::from_degrees_per_second_squared(1.0_f64).to_radps2(), 9
5460 );
5461 assert_approx_equal(
5462 AngularAcceleration::from_radps2(1.0_f64).to_radps2() * 57.2957795130823,
5463 AngularAcceleration::from_radps2(1.0_f64).to_degrees_per_second_squared(), 9
5464 );
5465 assert_approx_equal(
5466 AngularAcceleration::from_radps2(6.28318530717959_f64).to_radps2(),
5467 AngularAcceleration::from_rps2(1.0_f64).to_radps2(), 9
5468 );
5469 assert_approx_equal(
5470 AngularAcceleration::from_radps2(1.0_f64).to_radps2() * 0.159154943091895,
5471 AngularAcceleration::from_radps2(1.0_f64).to_rps2(), 9
5472 );
5473 assert_approx_equal(
5474 AngularAcceleration::from_radps2(0.0017453292519943_f64).to_radps2(),
5475 AngularAcceleration::from_rpm2(1.0_f64).to_radps2(), 9
5476 );
5477 assert_approx_equal(
5478 AngularAcceleration::from_radps2(1.0_f64).to_radps2() * 572.957795130823,
5479 AngularAcceleration::from_radps2(1.0_f64).to_rpm2(), 9
5480 );
5481 assert_approx_equal(
5482 AngularAcceleration::from_radps2(0.0174532925199433_f64).to_radps2(),
5483 AngularAcceleration::from_degps2(1.0_f64).to_radps2(), 9
5484 );
5485 assert_approx_equal(
5486 AngularAcceleration::from_radps2(1.0_f64).to_radps2() * 57.2957795130823,
5487 AngularAcceleration::from_radps2(1.0_f64).to_degps2(), 9
5488 );
5489 assert_approx_equal(
5490 AngularAcceleration::from_radps2(4.84813681109536e-07_f64).to_radps2(),
5491 AngularAcceleration::from_rph2(1.0_f64).to_radps2(), 9
5492 );
5493 assert_approx_equal(
5494 AngularAcceleration::from_radps2(1.0_f64).to_radps2() * 2062648.06247096,
5495 AngularAcceleration::from_radps2(1.0_f64).to_rph2(), 9
5496 );
5497 }
5498
5499 #[test]
5500 fn angular_momentum_units() {
5501 assert_approx_equal(
5502 AngularMomentum::from_kgm2radps(1e-07_f64).to_kgm2radps(),
5503 AngularMomentum::from_gcm2radps(1.0_f64).to_kgm2radps(), 9
5504 );
5505 assert_approx_equal(
5506 AngularMomentum::from_kgm2radps(1.0_f64).to_kgm2radps() * 10000000.0,
5507 AngularMomentum::from_kgm2radps(1.0_f64).to_gcm2radps(), 9
5508 );
5509 }
5510
5511 #[test]
5512 fn angular_velocity_units() {
5513 assert_approx_equal(
5514 AngularVelocity::from_radps(0.0174532925199433_f64).to_radps(),
5515 AngularVelocity::from_degrees_per_second(1.0_f64).to_radps(), 9
5516 );
5517 assert_approx_equal(
5518 AngularVelocity::from_radps(1.0_f64).to_radps() * 57.2957795130823,
5519 AngularVelocity::from_radps(1.0_f64).to_degrees_per_second(), 9
5520 );
5521 assert_approx_equal(
5522 AngularVelocity::from_radps(0.0174532925199433_f64).to_radps(),
5523 AngularVelocity::from_degps(1.0_f64).to_radps(), 9
5524 );
5525 assert_approx_equal(
5526 AngularVelocity::from_radps(1.0_f64).to_radps() * 57.2957795130823,
5527 AngularVelocity::from_radps(1.0_f64).to_degps(), 9
5528 );
5529 assert_approx_equal(
5530 AngularVelocity::from_radps(6.28318530717959_f64).to_radps(),
5531 AngularVelocity::from_rps(1.0_f64).to_radps(), 9
5532 );
5533 assert_approx_equal(
5534 AngularVelocity::from_radps(1.0_f64).to_radps() * 0.159154943091895,
5535 AngularVelocity::from_radps(1.0_f64).to_rps(), 9
5536 );
5537 assert_approx_equal(
5538 AngularVelocity::from_radps(0.10471975511966_f64).to_radps(),
5539 AngularVelocity::from_rpm(1.0_f64).to_radps(), 9
5540 );
5541 assert_approx_equal(
5542 AngularVelocity::from_radps(1.0_f64).to_radps() * 9.54929658551372,
5543 AngularVelocity::from_radps(1.0_f64).to_rpm(), 9
5544 );
5545 assert_approx_equal(
5546 AngularVelocity::from_radps(0.0017453292519943_f64).to_radps(),
5547 AngularVelocity::from_rph(1.0_f64).to_radps(), 9
5548 );
5549 assert_approx_equal(
5550 AngularVelocity::from_radps(1.0_f64).to_radps() * 572.957795130823,
5551 AngularVelocity::from_radps(1.0_f64).to_rph(), 9
5552 );
5553 }
5554
5555 #[test]
5556 fn area_density_units() {
5557 assert_approx_equal(
5558 AreaDensity::from_kgpm2(0.001_f64).to_kgpm2(),
5559 AreaDensity::from_gpm2(1.0_f64).to_kgpm2(), 9
5560 );
5561 assert_approx_equal(
5562 AreaDensity::from_kgpm2(1.0_f64).to_kgpm2() * 1000.0,
5563 AreaDensity::from_kgpm2(1.0_f64).to_gpm2(), 9
5564 );
5565 assert_approx_equal(
5566 AreaDensity::from_kgpm2(0.001_f64).to_kgpm2(),
5567 AreaDensity::from_grams_per_square_meter(1.0_f64).to_kgpm2(), 9
5568 );
5569 assert_approx_equal(
5570 AreaDensity::from_kgpm2(1.0_f64).to_kgpm2() * 1000.0,
5571 AreaDensity::from_kgpm2(1.0_f64).to_grams_per_square_meter(), 9
5572 );
5573 assert_approx_equal(
5574 AreaDensity::from_kgpm2(10.0_f64).to_kgpm2(),
5575 AreaDensity::from_gpcm2(1.0_f64).to_kgpm2(), 9
5576 );
5577 assert_approx_equal(
5578 AreaDensity::from_kgpm2(1.0_f64).to_kgpm2() * 0.1,
5579 AreaDensity::from_kgpm2(1.0_f64).to_gpcm2(), 9
5580 );
5581 assert_approx_equal(
5582 AreaDensity::from_kgpm2(10.0_f64).to_kgpm2(),
5583 AreaDensity::from_grams_per_square_cm(1.0_f64).to_kgpm2(), 9
5584 );
5585 assert_approx_equal(
5586 AreaDensity::from_kgpm2(1.0_f64).to_kgpm2() * 0.1,
5587 AreaDensity::from_kgpm2(1.0_f64).to_grams_per_square_cm(), 9
5588 );
5589 }
5590
5591 #[test]
5592 fn density_units() {
5593 assert_approx_equal(
5594 Density::from_kgpm3(1000.0_f64).to_kgpm3(),
5595 Density::from_kgpL(1.0_f64).to_kgpm3(), 9
5596 );
5597 assert_approx_equal(
5598 Density::from_kgpm3(1.0_f64).to_kgpm3() * 0.001,
5599 Density::from_kgpm3(1.0_f64).to_kgpL(), 9
5600 );
5601 assert_approx_equal(
5602 Density::from_kgpm3(1000.0_f64).to_kgpm3(),
5603 Density::from_kilograms_per_liter(1.0_f64).to_kgpm3(), 9
5604 );
5605 assert_approx_equal(
5606 Density::from_kgpm3(1.0_f64).to_kgpm3() * 0.001,
5607 Density::from_kgpm3(1.0_f64).to_kilograms_per_liter(), 9
5608 );
5609 assert_approx_equal(
5610 Density::from_kgpm3(1000.0_f64).to_kgpm3(),
5611 Density::from_gpcc(1.0_f64).to_kgpm3(), 9
5612 );
5613 assert_approx_equal(
5614 Density::from_kgpm3(1.0_f64).to_kgpm3() * 0.001,
5615 Density::from_kgpm3(1.0_f64).to_gpcc(), 9
5616 );
5617 assert_approx_equal(
5618 Density::from_kgpm3(1000.0_f64).to_kgpm3(),
5619 Density::from_grams_per_cubic_centimeter(1.0_f64).to_kgpm3(), 9
5620 );
5621 assert_approx_equal(
5622 Density::from_kgpm3(1.0_f64).to_kgpm3() * 0.001,
5623 Density::from_kgpm3(1.0_f64).to_grams_per_cubic_centimeter(), 9
5624 );
5625 assert_approx_equal(
5626 Density::from_kgpm3(0.001_f64).to_kgpm3(),
5627 Density::from_gpm3(1.0_f64).to_kgpm3(), 9
5628 );
5629 assert_approx_equal(
5630 Density::from_kgpm3(1.0_f64).to_kgpm3() * 1000.0,
5631 Density::from_kgpm3(1.0_f64).to_gpm3(), 9
5632 );
5633 }
5634
5635 #[test]
5636 fn energy_units() {
5637 assert_approx_equal(
5638 Energy::from_J(0.001_f64).to_J(),
5639 Energy::from_mJ(1.0_f64).to_J(), 9
5640 );
5641 assert_approx_equal(
5642 Energy::from_J(1.0_f64).to_J() * 1000.0,
5643 Energy::from_J(1.0_f64).to_mJ(), 9
5644 );
5645 assert_approx_equal(
5646 Energy::from_J(1e-06_f64).to_J(),
5647 Energy::from_uJ(1.0_f64).to_J(), 9
5648 );
5649 assert_approx_equal(
5650 Energy::from_J(1.0_f64).to_J() * 1000000.0,
5651 Energy::from_J(1.0_f64).to_uJ(), 9
5652 );
5653 assert_approx_equal(
5654 Energy::from_J(1e-09_f64).to_J(),
5655 Energy::from_nJ(1.0_f64).to_J(), 9
5656 );
5657 assert_approx_equal(
5658 Energy::from_J(1.0_f64).to_J() * 1000000000.0,
5659 Energy::from_J(1.0_f64).to_nJ(), 9
5660 );
5661 assert_approx_equal(
5662 Energy::from_J(1000.0_f64).to_J(),
5663 Energy::from_kJ(1.0_f64).to_J(), 9
5664 );
5665 assert_approx_equal(
5666 Energy::from_J(1.0_f64).to_J() * 0.001,
5667 Energy::from_J(1.0_f64).to_kJ(), 9
5668 );
5669 assert_approx_equal(
5670 Energy::from_J(1000000.0_f64).to_J(),
5671 Energy::from_MJ(1.0_f64).to_J(), 9
5672 );
5673 assert_approx_equal(
5674 Energy::from_J(1.0_f64).to_J() * 1e-06,
5675 Energy::from_J(1.0_f64).to_MJ(), 9
5676 );
5677 assert_approx_equal(
5678 Energy::from_J(1000000000.0_f64).to_J(),
5679 Energy::from_GJ(1.0_f64).to_J(), 9
5680 );
5681 assert_approx_equal(
5682 Energy::from_J(1.0_f64).to_J() * 1e-09,
5683 Energy::from_J(1.0_f64).to_GJ(), 9
5684 );
5685 assert_approx_equal(
5686 Energy::from_J(4.184_f64).to_J(),
5687 Energy::from_cal(1.0_f64).to_J(), 9
5688 );
5689 assert_approx_equal(
5690 Energy::from_J(1.0_f64).to_J() * 0.239005736137667,
5691 Energy::from_J(1.0_f64).to_cal(), 9
5692 );
5693 assert_approx_equal(
5694 Energy::from_J(4184.0_f64).to_J(),
5695 Energy::from_kcal(1.0_f64).to_J(), 9
5696 );
5697 assert_approx_equal(
5698 Energy::from_J(1.0_f64).to_J() * 0.0002390057361376,
5699 Energy::from_J(1.0_f64).to_kcal(), 9
5700 );
5701 assert_approx_equal(
5702 Energy::from_J(3600.0_f64).to_J(),
5703 Energy::from_Whr(1.0_f64).to_J(), 9
5704 );
5705 assert_approx_equal(
5706 Energy::from_J(1.0_f64).to_J() * 0.0002777777777777,
5707 Energy::from_J(1.0_f64).to_Whr(), 9
5708 );
5709 assert_approx_equal(
5710 Energy::from_J(3600000.0_f64).to_J(),
5711 Energy::from_kWhr(1.0_f64).to_J(), 9
5712 );
5713 assert_approx_equal(
5714 Energy::from_J(1.0_f64).to_J() * 2.77777777777778e-07,
5715 Energy::from_J(1.0_f64).to_kWhr(), 9
5716 );
5717 assert_approx_equal(
5718 Energy::from_J(1.6021766340000001e-19_f64).to_J(),
5719 Energy::from_eV(1.0_f64).to_J(), 9
5720 );
5721 assert_approx_equal(
5722 Energy::from_J(1.0_f64).to_J() * 6.24150907446076e+18,
5723 Energy::from_J(1.0_f64).to_eV(), 9
5724 );
5725 assert_approx_equal(
5726 Energy::from_J(1055.0_f64).to_J(),
5727 Energy::from_BTU(1.0_f64).to_J(), 9
5728 );
5729 assert_approx_equal(
5730 Energy::from_J(1.0_f64).to_J() * 0.0009478672985781,
5731 Energy::from_J(1.0_f64).to_BTU(), 9
5732 );
5733 }
5734
5735 #[test]
5736 fn force_units() {
5737 assert_approx_equal(
5738 Force::from_N(4.45756819483586_f64).to_N(),
5739 Force::from_lb(1.0_f64).to_N(), 9
5740 );
5741 assert_approx_equal(
5742 Force::from_N(1.0_f64).to_N() * 0.224337566199999,
5743 Force::from_N(1.0_f64).to_lb(), 9
5744 );
5745 assert_approx_equal(
5746 Force::from_N(9.8066500286389_f64).to_N(),
5747 Force::from_kgG(1.0_f64).to_N(), 9
5748 );
5749 assert_approx_equal(
5750 Force::from_N(1.0_f64).to_N() * 0.101971620999999,
5751 Force::from_N(1.0_f64).to_kgG(), 9
5752 );
5753 assert_approx_equal(
5754 Force::from_N(0.001_f64).to_N(),
5755 Force::from_mN(1.0_f64).to_N(), 9
5756 );
5757 assert_approx_equal(
5758 Force::from_N(1.0_f64).to_N() * 1000.0,
5759 Force::from_N(1.0_f64).to_mN(), 9
5760 );
5761 assert_approx_equal(
5762 Force::from_N(1e-06_f64).to_N(),
5763 Force::from_uN(1.0_f64).to_N(), 9
5764 );
5765 assert_approx_equal(
5766 Force::from_N(1.0_f64).to_N() * 1000000.0,
5767 Force::from_N(1.0_f64).to_uN(), 9
5768 );
5769 assert_approx_equal(
5770 Force::from_N(1e-09_f64).to_N(),
5771 Force::from_nN(1.0_f64).to_N(), 9
5772 );
5773 assert_approx_equal(
5774 Force::from_N(1.0_f64).to_N() * 1000000000.0,
5775 Force::from_N(1.0_f64).to_nN(), 9
5776 );
5777 assert_approx_equal(
5778 Force::from_N(1000.0_f64).to_N(),
5779 Force::from_kN(1.0_f64).to_N(), 9
5780 );
5781 assert_approx_equal(
5782 Force::from_N(1.0_f64).to_N() * 0.001,
5783 Force::from_N(1.0_f64).to_kN(), 9
5784 );
5785 assert_approx_equal(
5786 Force::from_N(1000000.0_f64).to_N(),
5787 Force::from_MN(1.0_f64).to_N(), 9
5788 );
5789 assert_approx_equal(
5790 Force::from_N(1.0_f64).to_N() * 1e-06,
5791 Force::from_N(1.0_f64).to_MN(), 9
5792 );
5793 assert_approx_equal(
5794 Force::from_N(1000000000.0_f64).to_N(),
5795 Force::from_GN(1.0_f64).to_N(), 9
5796 );
5797 assert_approx_equal(
5798 Force::from_N(1.0_f64).to_N() * 1e-09,
5799 Force::from_N(1.0_f64).to_GN(), 9
5800 );
5801 }
5802
5803 #[test]
5804 fn frequency_units() {
5805 assert_approx_equal(
5806 Frequency::from_Hz(1000.0_f64).to_Hz(),
5807 Frequency::from_kHz(1.0_f64).to_Hz(), 9
5808 );
5809 assert_approx_equal(
5810 Frequency::from_Hz(1.0_f64).to_Hz() * 0.001,
5811 Frequency::from_Hz(1.0_f64).to_kHz(), 9
5812 );
5813 assert_approx_equal(
5814 Frequency::from_Hz(1000000.0_f64).to_Hz(),
5815 Frequency::from_MHz(1.0_f64).to_Hz(), 9
5816 );
5817 assert_approx_equal(
5818 Frequency::from_Hz(1.0_f64).to_Hz() * 1e-06,
5819 Frequency::from_Hz(1.0_f64).to_MHz(), 9
5820 );
5821 assert_approx_equal(
5822 Frequency::from_Hz(1000000000.0_f64).to_Hz(),
5823 Frequency::from_GHz(1.0_f64).to_Hz(), 9
5824 );
5825 assert_approx_equal(
5826 Frequency::from_Hz(1.0_f64).to_Hz() * 1e-09,
5827 Frequency::from_Hz(1.0_f64).to_GHz(), 9
5828 );
5829 assert_approx_equal(
5830 Frequency::from_Hz(1000000000000.0_f64).to_Hz(),
5831 Frequency::from_THz(1.0_f64).to_Hz(), 9
5832 );
5833 assert_approx_equal(
5834 Frequency::from_Hz(1.0_f64).to_Hz() * 1e-12,
5835 Frequency::from_Hz(1.0_f64).to_THz(), 9
5836 );
5837 }
5838
5839 #[test]
5840 fn moment_of_inertia_units() {
5841 assert_approx_equal(
5842 MomentOfInertia::from_kgm2(10.0_f64).to_kgm2(),
5843 MomentOfInertia::from_gcm2(1.0_f64).to_kgm2(), 9
5844 );
5845 assert_approx_equal(
5846 MomentOfInertia::from_kgm2(1.0_f64).to_kgm2() * 0.1,
5847 MomentOfInertia::from_kgm2(1.0_f64).to_gcm2(), 9
5848 );
5849 assert_approx_equal(
5850 MomentOfInertia::from_kgm2(0.001_f64).to_kgm2(),
5851 MomentOfInertia::from_gm2(1.0_f64).to_kgm2(), 9
5852 );
5853 assert_approx_equal(
5854 MomentOfInertia::from_kgm2(1.0_f64).to_kgm2() * 1000.0,
5855 MomentOfInertia::from_kgm2(1.0_f64).to_gm2(), 9
5856 );
5857 }
5858
5859 #[test]
5860 fn momentum_units() {
5861 assert_approx_equal(
5862 Momentum::from_kgmps(1e-05_f64).to_kgmps(),
5863 Momentum::from_gram_centimeters_per_second(1.0_f64).to_kgmps(), 9
5864 );
5865 assert_approx_equal(
5866 Momentum::from_kgmps(1.0_f64).to_kgmps() * 100000.0,
5867 Momentum::from_kgmps(1.0_f64).to_gram_centimeters_per_second(), 9
5868 );
5869 assert_approx_equal(
5870 Momentum::from_kgmps(1e-05_f64).to_kgmps(),
5871 Momentum::from_gcmps(1.0_f64).to_kgmps(), 9
5872 );
5873 assert_approx_equal(
5874 Momentum::from_kgmps(1.0_f64).to_kgmps() * 100000.0,
5875 Momentum::from_kgmps(1.0_f64).to_gcmps(), 9
5876 );
5877 }
5878
5879 #[test]
5880 fn power_units() {
5881 assert_approx_equal(
5882 Power::from_W(0.001_f64).to_W(),
5883 Power::from_mW(1.0_f64).to_W(), 9
5884 );
5885 assert_approx_equal(
5886 Power::from_W(1.0_f64).to_W() * 1000.0,
5887 Power::from_W(1.0_f64).to_mW(), 9
5888 );
5889 assert_approx_equal(
5890 Power::from_W(1e-06_f64).to_W(),
5891 Power::from_uW(1.0_f64).to_W(), 9
5892 );
5893 assert_approx_equal(
5894 Power::from_W(1.0_f64).to_W() * 1000000.0,
5895 Power::from_W(1.0_f64).to_uW(), 9
5896 );
5897 assert_approx_equal(
5898 Power::from_W(1e-09_f64).to_W(),
5899 Power::from_nW(1.0_f64).to_W(), 9
5900 );
5901 assert_approx_equal(
5902 Power::from_W(1.0_f64).to_W() * 1000000000.0,
5903 Power::from_W(1.0_f64).to_nW(), 9
5904 );
5905 assert_approx_equal(
5906 Power::from_W(1000.0_f64).to_W(),
5907 Power::from_kW(1.0_f64).to_W(), 9
5908 );
5909 assert_approx_equal(
5910 Power::from_W(1.0_f64).to_W() * 0.001,
5911 Power::from_W(1.0_f64).to_kW(), 9
5912 );
5913 assert_approx_equal(
5914 Power::from_W(1000000.0_f64).to_W(),
5915 Power::from_MW(1.0_f64).to_W(), 9
5916 );
5917 assert_approx_equal(
5918 Power::from_W(1.0_f64).to_W() * 1e-06,
5919 Power::from_W(1.0_f64).to_MW(), 9
5920 );
5921 assert_approx_equal(
5922 Power::from_W(1000000000.0_f64).to_W(),
5923 Power::from_GW(1.0_f64).to_W(), 9
5924 );
5925 assert_approx_equal(
5926 Power::from_W(1.0_f64).to_W() * 1e-09,
5927 Power::from_W(1.0_f64).to_GW(), 9
5928 );
5929 assert_approx_equal(
5930 Power::from_W(745.7_f64).to_W(),
5931 Power::from_horsepower(1.0_f64).to_W(), 9
5932 );
5933 assert_approx_equal(
5934 Power::from_W(1.0_f64).to_W() * 0.0013410218586563,
5935 Power::from_W(1.0_f64).to_horsepower(), 9
5936 );
5937 }
5938
5939 #[test]
5940 fn pressure_units() {
5941 assert_approx_equal(
5942 Pressure::from_Pa(6894.7572931783_f64).to_Pa(),
5943 Pressure::from_psi(1.0_f64).to_Pa(), 9
5944 );
5945 assert_approx_equal(
5946 Pressure::from_Pa(1.0_f64).to_Pa() * 0.00014503773773,
5947 Pressure::from_Pa(1.0_f64).to_psi(), 9
5948 );
5949 assert_approx_equal(
5950 Pressure::from_Pa(0.001_f64).to_Pa(),
5951 Pressure::from_mPa(1.0_f64).to_Pa(), 9
5952 );
5953 assert_approx_equal(
5954 Pressure::from_Pa(1.0_f64).to_Pa() * 1000.0,
5955 Pressure::from_Pa(1.0_f64).to_mPa(), 9
5956 );
5957 assert_approx_equal(
5958 Pressure::from_Pa(1e-06_f64).to_Pa(),
5959 Pressure::from_uPa(1.0_f64).to_Pa(), 9
5960 );
5961 assert_approx_equal(
5962 Pressure::from_Pa(1.0_f64).to_Pa() * 1000000.0,
5963 Pressure::from_Pa(1.0_f64).to_uPa(), 9
5964 );
5965 assert_approx_equal(
5966 Pressure::from_Pa(1e-09_f64).to_Pa(),
5967 Pressure::from_nPa(1.0_f64).to_Pa(), 9
5968 );
5969 assert_approx_equal(
5970 Pressure::from_Pa(1.0_f64).to_Pa() * 1000000000.0,
5971 Pressure::from_Pa(1.0_f64).to_nPa(), 9
5972 );
5973 assert_approx_equal(
5974 Pressure::from_Pa(1000.0_f64).to_Pa(),
5975 Pressure::from_kPa(1.0_f64).to_Pa(), 9
5976 );
5977 assert_approx_equal(
5978 Pressure::from_Pa(1.0_f64).to_Pa() * 0.001,
5979 Pressure::from_Pa(1.0_f64).to_kPa(), 9
5980 );
5981 assert_approx_equal(
5982 Pressure::from_Pa(1000000.0_f64).to_Pa(),
5983 Pressure::from_MPa(1.0_f64).to_Pa(), 9
5984 );
5985 assert_approx_equal(
5986 Pressure::from_Pa(1.0_f64).to_Pa() * 1e-06,
5987 Pressure::from_Pa(1.0_f64).to_MPa(), 9
5988 );
5989 assert_approx_equal(
5990 Pressure::from_Pa(1000000000.0_f64).to_Pa(),
5991 Pressure::from_GPa(1.0_f64).to_Pa(), 9
5992 );
5993 assert_approx_equal(
5994 Pressure::from_Pa(1.0_f64).to_Pa() * 1e-09,
5995 Pressure::from_Pa(1.0_f64).to_GPa(), 9
5996 );
5997 assert_approx_equal(
5998 Pressure::from_Pa(100.0_f64).to_Pa(),
5999 Pressure::from_hPa(1.0_f64).to_Pa(), 9
6000 );
6001 assert_approx_equal(
6002 Pressure::from_Pa(1.0_f64).to_Pa() * 0.01,
6003 Pressure::from_Pa(1.0_f64).to_hPa(), 9
6004 );
6005 assert_approx_equal(
6006 Pressure::from_Pa(100000.0_f64).to_Pa(),
6007 Pressure::from_bar(1.0_f64).to_Pa(), 9
6008 );
6009 assert_approx_equal(
6010 Pressure::from_Pa(1.0_f64).to_Pa() * 1e-05,
6011 Pressure::from_Pa(1.0_f64).to_bar(), 9
6012 );
6013 assert_approx_equal(
6014 Pressure::from_Pa(100.0_f64).to_Pa(),
6015 Pressure::from_mbar(1.0_f64).to_Pa(), 9
6016 );
6017 assert_approx_equal(
6018 Pressure::from_Pa(1.0_f64).to_Pa() * 0.01,
6019 Pressure::from_Pa(1.0_f64).to_mbar(), 9
6020 );
6021 assert_approx_equal(
6022 Pressure::from_Pa(101325.0_f64).to_Pa(),
6023 Pressure::from_atm(1.0_f64).to_Pa(), 9
6024 );
6025 assert_approx_equal(
6026 Pressure::from_Pa(1.0_f64).to_Pa() * 9.86923266716013e-06,
6027 Pressure::from_Pa(1.0_f64).to_atm(), 9
6028 );
6029 assert_approx_equal(
6030 Pressure::from_Pa(133.3223684211_f64).to_Pa(),
6031 Pressure::from_torr(1.0_f64).to_Pa(), 9
6032 );
6033 assert_approx_equal(
6034 Pressure::from_Pa(1.0_f64).to_Pa() * 0.007500616827039,
6035 Pressure::from_Pa(1.0_f64).to_torr(), 9
6036 );
6037 assert_approx_equal(
6038 Pressure::from_Pa(133.3223684211_f64).to_Pa(),
6039 Pressure::from_mmHg(1.0_f64).to_Pa(), 9
6040 );
6041 assert_approx_equal(
6042 Pressure::from_Pa(1.0_f64).to_Pa() * 0.007500616827039,
6043 Pressure::from_Pa(1.0_f64).to_mmHg(), 9
6044 );
6045 }
6046
6047 #[test]
6048 fn torque_units() {
6049 assert_approx_equal(
6050 Torque::from_Nm(1.35581794833139_f64).to_Nm(),
6051 Torque::from_ftlb(1.0_f64).to_Nm(), 9
6052 );
6053 assert_approx_equal(
6054 Torque::from_Nm(1.0_f64).to_Nm() * 0.73756214927727,
6055 Torque::from_Nm(1.0_f64).to_ftlb(), 9
6056 );
6057 }
6058
6059 #[test]
6060 fn velocity_units() {
6061 assert_approx_equal(
6062 Velocity::from_mps(0.01_f64).to_mps(),
6063 Velocity::from_cmps(1.0_f64).to_mps(), 9
6064 );
6065 assert_approx_equal(
6066 Velocity::from_mps(1.0_f64).to_mps() * 100.0,
6067 Velocity::from_mps(1.0_f64).to_cmps(), 9
6068 );
6069 assert_approx_equal(
6070 Velocity::from_mps(0.001_f64).to_mps(),
6071 Velocity::from_mmps(1.0_f64).to_mps(), 9
6072 );
6073 assert_approx_equal(
6074 Velocity::from_mps(1.0_f64).to_mps() * 1000.0,
6075 Velocity::from_mps(1.0_f64).to_mmps(), 9
6076 );
6077 assert_approx_equal(
6078 Velocity::from_mps(2.77777777777778e-07_f64).to_mps(),
6079 Velocity::from_mmph(1.0_f64).to_mps(), 9
6080 );
6081 assert_approx_equal(
6082 Velocity::from_mps(1.0_f64).to_mps() * 3600000.0,
6083 Velocity::from_mps(1.0_f64).to_mmph(), 9
6084 );
6085 assert_approx_equal(
6086 Velocity::from_mps(0.277777777777778_f64).to_mps(),
6087 Velocity::from_kph(1.0_f64).to_mps(), 9
6088 );
6089 assert_approx_equal(
6090 Velocity::from_mps(1.0_f64).to_mps() * 3.6,
6091 Velocity::from_mps(1.0_f64).to_kph(), 9
6092 );
6093 assert_approx_equal(
6094 Velocity::from_mps(0.44704_f64).to_mps(),
6095 Velocity::from_mph(1.0_f64).to_mps(), 9
6096 );
6097 assert_approx_equal(
6098 Velocity::from_mps(1.0_f64).to_mps() * 2.2369362920544,
6099 Velocity::from_mps(1.0_f64).to_mph(), 9
6100 );
6101 assert_approx_equal(
6102 Velocity::from_mps(1000.0_f64).to_mps(),
6103 Velocity::from_kmps(1.0_f64).to_mps(), 9
6104 );
6105 assert_approx_equal(
6106 Velocity::from_mps(1.0_f64).to_mps() * 0.001,
6107 Velocity::from_mps(1.0_f64).to_kmps(), 9
6108 );
6109 assert_approx_equal(
6110 Velocity::from_mps(299792458.0_f64).to_mps(),
6111 Velocity::from_c(1.0_f64).to_mps(), 9
6112 );
6113 assert_approx_equal(
6114 Velocity::from_mps(1.0_f64).to_mps() * 3.3356409519815204e-09,
6115 Velocity::from_mps(1.0_f64).to_c(), 9
6116 );
6117 }
6118
6119 #[test]
6120 fn absorbed_dose_units() {
6121 assert_approx_equal(
6122 AbsorbedDose::from_Gy(0.001_f64).to_Gy(),
6123 AbsorbedDose::from_mGy(1.0_f64).to_Gy(), 9
6124 );
6125 assert_approx_equal(
6126 AbsorbedDose::from_Gy(1.0_f64).to_Gy() * 1000.0,
6127 AbsorbedDose::from_Gy(1.0_f64).to_mGy(), 9
6128 );
6129 assert_approx_equal(
6130 AbsorbedDose::from_Gy(1e-06_f64).to_Gy(),
6131 AbsorbedDose::from_uGy(1.0_f64).to_Gy(), 9
6132 );
6133 assert_approx_equal(
6134 AbsorbedDose::from_Gy(1.0_f64).to_Gy() * 1000000.0,
6135 AbsorbedDose::from_Gy(1.0_f64).to_uGy(), 9
6136 );
6137 assert_approx_equal(
6138 AbsorbedDose::from_Gy(1e-09_f64).to_Gy(),
6139 AbsorbedDose::from_nGy(1.0_f64).to_Gy(), 9
6140 );
6141 assert_approx_equal(
6142 AbsorbedDose::from_Gy(1.0_f64).to_Gy() * 1000000000.0,
6143 AbsorbedDose::from_Gy(1.0_f64).to_nGy(), 9
6144 );
6145 assert_approx_equal(
6146 AbsorbedDose::from_Gy(1000.0_f64).to_Gy(),
6147 AbsorbedDose::from_kGy(1.0_f64).to_Gy(), 9
6148 );
6149 assert_approx_equal(
6150 AbsorbedDose::from_Gy(1.0_f64).to_Gy() * 0.001,
6151 AbsorbedDose::from_Gy(1.0_f64).to_kGy(), 9
6152 );
6153 assert_approx_equal(
6154 AbsorbedDose::from_Gy(1000000.0_f64).to_Gy(),
6155 AbsorbedDose::from_MGy(1.0_f64).to_Gy(), 9
6156 );
6157 assert_approx_equal(
6158 AbsorbedDose::from_Gy(1.0_f64).to_Gy() * 1e-06,
6159 AbsorbedDose::from_Gy(1.0_f64).to_MGy(), 9
6160 );
6161 assert_approx_equal(
6162 AbsorbedDose::from_Gy(1000000000.0_f64).to_Gy(),
6163 AbsorbedDose::from_GGy(1.0_f64).to_Gy(), 9
6164 );
6165 assert_approx_equal(
6166 AbsorbedDose::from_Gy(1.0_f64).to_Gy() * 1e-09,
6167 AbsorbedDose::from_Gy(1.0_f64).to_GGy(), 9
6168 );
6169 assert_approx_equal(
6170 AbsorbedDose::from_Gy(0.01_f64).to_Gy(),
6171 AbsorbedDose::from_rad(1.0_f64).to_Gy(), 9
6172 );
6173 assert_approx_equal(
6174 AbsorbedDose::from_Gy(1.0_f64).to_Gy() * 100.0,
6175 AbsorbedDose::from_Gy(1.0_f64).to_rad(), 9
6176 );
6177 assert_approx_equal(
6178 AbsorbedDose::from_Gy(10.0_f64).to_Gy(),
6179 AbsorbedDose::from_krad(1.0_f64).to_Gy(), 9
6180 );
6181 assert_approx_equal(
6182 AbsorbedDose::from_Gy(1.0_f64).to_Gy() * 0.1,
6183 AbsorbedDose::from_Gy(1.0_f64).to_krad(), 9
6184 );
6185 assert_approx_equal(
6186 AbsorbedDose::from_Gy(1e-05_f64).to_Gy(),
6187 AbsorbedDose::from_mrad(1.0_f64).to_Gy(), 9
6188 );
6189 assert_approx_equal(
6190 AbsorbedDose::from_Gy(1.0_f64).to_Gy() * 100000.0,
6191 AbsorbedDose::from_Gy(1.0_f64).to_mrad(), 9
6192 );
6193 assert_approx_equal(
6194 AbsorbedDose::from_Gy(1e-08_f64).to_Gy(),
6195 AbsorbedDose::from_urad(1.0_f64).to_Gy(), 9
6196 );
6197 assert_approx_equal(
6198 AbsorbedDose::from_Gy(1.0_f64).to_Gy() * 100000000.0,
6199 AbsorbedDose::from_Gy(1.0_f64).to_urad(), 9
6200 );
6201 assert_approx_equal(
6202 AbsorbedDose::from_Gy(0.0001_f64).to_Gy(),
6203 AbsorbedDose::from_erg(1.0_f64).to_Gy(), 9
6204 );
6205 assert_approx_equal(
6206 AbsorbedDose::from_Gy(1.0_f64).to_Gy() * 10000.0,
6207 AbsorbedDose::from_Gy(1.0_f64).to_erg(), 9
6208 );
6209 }
6210
6211 #[test]
6212 fn dose_equivalent_units() {
6213 assert_approx_equal(
6214 DoseEquivalent::from_Sv(0.001_f64).to_Sv(),
6215 DoseEquivalent::from_mSv(1.0_f64).to_Sv(), 9
6216 );
6217 assert_approx_equal(
6218 DoseEquivalent::from_Sv(1.0_f64).to_Sv() * 1000.0,
6219 DoseEquivalent::from_Sv(1.0_f64).to_mSv(), 9
6220 );
6221 assert_approx_equal(
6222 DoseEquivalent::from_Sv(1e-06_f64).to_Sv(),
6223 DoseEquivalent::from_uSv(1.0_f64).to_Sv(), 9
6224 );
6225 assert_approx_equal(
6226 DoseEquivalent::from_Sv(1.0_f64).to_Sv() * 1000000.0,
6227 DoseEquivalent::from_Sv(1.0_f64).to_uSv(), 9
6228 );
6229 assert_approx_equal(
6230 DoseEquivalent::from_Sv(1e-09_f64).to_Sv(),
6231 DoseEquivalent::from_nSv(1.0_f64).to_Sv(), 9
6232 );
6233 assert_approx_equal(
6234 DoseEquivalent::from_Sv(1.0_f64).to_Sv() * 1000000000.0,
6235 DoseEquivalent::from_Sv(1.0_f64).to_nSv(), 9
6236 );
6237 assert_approx_equal(
6238 DoseEquivalent::from_Sv(1000.0_f64).to_Sv(),
6239 DoseEquivalent::from_kSv(1.0_f64).to_Sv(), 9
6240 );
6241 assert_approx_equal(
6242 DoseEquivalent::from_Sv(1.0_f64).to_Sv() * 0.001,
6243 DoseEquivalent::from_Sv(1.0_f64).to_kSv(), 9
6244 );
6245 assert_approx_equal(
6246 DoseEquivalent::from_Sv(1000000.0_f64).to_Sv(),
6247 DoseEquivalent::from_MSv(1.0_f64).to_Sv(), 9
6248 );
6249 assert_approx_equal(
6250 DoseEquivalent::from_Sv(1.0_f64).to_Sv() * 1e-06,
6251 DoseEquivalent::from_Sv(1.0_f64).to_MSv(), 9
6252 );
6253 assert_approx_equal(
6254 DoseEquivalent::from_Sv(1000000000.0_f64).to_Sv(),
6255 DoseEquivalent::from_GSv(1.0_f64).to_Sv(), 9
6256 );
6257 assert_approx_equal(
6258 DoseEquivalent::from_Sv(1.0_f64).to_Sv() * 1e-09,
6259 DoseEquivalent::from_Sv(1.0_f64).to_GSv(), 9
6260 );
6261 assert_approx_equal(
6262 DoseEquivalent::from_Sv(0.01_f64).to_Sv(),
6263 DoseEquivalent::from_rem(1.0_f64).to_Sv(), 9
6264 );
6265 assert_approx_equal(
6266 DoseEquivalent::from_Sv(1.0_f64).to_Sv() * 100.0,
6267 DoseEquivalent::from_Sv(1.0_f64).to_rem(), 9
6268 );
6269 assert_approx_equal(
6270 DoseEquivalent::from_Sv(1e-05_f64).to_Sv(),
6271 DoseEquivalent::from_mrem(1.0_f64).to_Sv(), 9
6272 );
6273 assert_approx_equal(
6274 DoseEquivalent::from_Sv(1.0_f64).to_Sv() * 100000.0,
6275 DoseEquivalent::from_Sv(1.0_f64).to_mrem(), 9
6276 );
6277 assert_approx_equal(
6278 DoseEquivalent::from_Sv(10.0_f64).to_Sv(),
6279 DoseEquivalent::from_krem(1.0_f64).to_Sv(), 9
6280 );
6281 assert_approx_equal(
6282 DoseEquivalent::from_Sv(1.0_f64).to_Sv() * 0.1,
6283 DoseEquivalent::from_Sv(1.0_f64).to_krem(), 9
6284 );
6285 }
6286
6287 #[test]
6288 fn radioactivity_units() {
6289 assert_approx_equal(
6290 Radioactivity::from_Bq(0.001_f64).to_Bq(),
6291 Radioactivity::from_mBq(1.0_f64).to_Bq(), 9
6292 );
6293 assert_approx_equal(
6294 Radioactivity::from_Bq(1.0_f64).to_Bq() * 1000.0,
6295 Radioactivity::from_Bq(1.0_f64).to_mBq(), 9
6296 );
6297 assert_approx_equal(
6298 Radioactivity::from_Bq(1e-06_f64).to_Bq(),
6299 Radioactivity::from_uBq(1.0_f64).to_Bq(), 9
6300 );
6301 assert_approx_equal(
6302 Radioactivity::from_Bq(1.0_f64).to_Bq() * 1000000.0,
6303 Radioactivity::from_Bq(1.0_f64).to_uBq(), 9
6304 );
6305 assert_approx_equal(
6306 Radioactivity::from_Bq(1e-09_f64).to_Bq(),
6307 Radioactivity::from_nBq(1.0_f64).to_Bq(), 9
6308 );
6309 assert_approx_equal(
6310 Radioactivity::from_Bq(1.0_f64).to_Bq() * 1000000000.0,
6311 Radioactivity::from_Bq(1.0_f64).to_nBq(), 9
6312 );
6313 assert_approx_equal(
6314 Radioactivity::from_Bq(1000.0_f64).to_Bq(),
6315 Radioactivity::from_kBq(1.0_f64).to_Bq(), 9
6316 );
6317 assert_approx_equal(
6318 Radioactivity::from_Bq(1.0_f64).to_Bq() * 0.001,
6319 Radioactivity::from_Bq(1.0_f64).to_kBq(), 9
6320 );
6321 assert_approx_equal(
6322 Radioactivity::from_Bq(1000000.0_f64).to_Bq(),
6323 Radioactivity::from_MBq(1.0_f64).to_Bq(), 9
6324 );
6325 assert_approx_equal(
6326 Radioactivity::from_Bq(1.0_f64).to_Bq() * 1e-06,
6327 Radioactivity::from_Bq(1.0_f64).to_MBq(), 9
6328 );
6329 assert_approx_equal(
6330 Radioactivity::from_Bq(1000000000.0_f64).to_Bq(),
6331 Radioactivity::from_GBq(1.0_f64).to_Bq(), 9
6332 );
6333 assert_approx_equal(
6334 Radioactivity::from_Bq(1.0_f64).to_Bq() * 1e-09,
6335 Radioactivity::from_Bq(1.0_f64).to_GBq(), 9
6336 );
6337 assert_approx_equal(
6338 Radioactivity::from_Bq(37000000000.0_f64).to_Bq(),
6339 Radioactivity::from_Ci(1.0_f64).to_Bq(), 9
6340 );
6341 assert_approx_equal(
6342 Radioactivity::from_Bq(1.0_f64).to_Bq() * 2.7027027027027e-11,
6343 Radioactivity::from_Bq(1.0_f64).to_Ci(), 9
6344 );
6345 assert_approx_equal(
6346 Radioactivity::from_Bq(37000000.0_f64).to_Bq(),
6347 Radioactivity::from_mCi(1.0_f64).to_Bq(), 9
6348 );
6349 assert_approx_equal(
6350 Radioactivity::from_Bq(1.0_f64).to_Bq() * 2.7027027027027e-08,
6351 Radioactivity::from_Bq(1.0_f64).to_mCi(), 9
6352 );
6353 assert_approx_equal(
6354 Radioactivity::from_Bq(37000.0_f64).to_Bq(),
6355 Radioactivity::from_uCi(1.0_f64).to_Bq(), 9
6356 );
6357 assert_approx_equal(
6358 Radioactivity::from_Bq(1.0_f64).to_Bq() * 2.7027027027027e-05,
6359 Radioactivity::from_Bq(1.0_f64).to_uCi(), 9
6360 );
6361 assert_approx_equal(
6362 Radioactivity::from_Bq(37.0_f64).to_Bq(),
6363 Radioactivity::from_nCi(1.0_f64).to_Bq(), 9
6364 );
6365 assert_approx_equal(
6366 Radioactivity::from_Bq(1.0_f64).to_Bq() * 0.027027027027027,
6367 Radioactivity::from_Bq(1.0_f64).to_nCi(), 9
6368 );
6369 assert_approx_equal(
6370 Radioactivity::from_Bq(0.037_f64).to_Bq(),
6371 Radioactivity::from_pCi(1.0_f64).to_Bq(), 9
6372 );
6373 assert_approx_equal(
6374 Radioactivity::from_Bq(1.0_f64).to_Bq() * 27.027027027027,
6375 Radioactivity::from_Bq(1.0_f64).to_pCi(), 9
6376 );
6377 assert_approx_equal(
6378 Radioactivity::from_Bq(1000000.0_f64).to_Bq(),
6379 Radioactivity::from_Rd(1.0_f64).to_Bq(), 9
6380 );
6381 assert_approx_equal(
6382 Radioactivity::from_Bq(1.0_f64).to_Bq() * 1e-06,
6383 Radioactivity::from_Bq(1.0_f64).to_Rd(), 9
6384 );
6385 }
6386
6387
6388 #[test]
6389 fn inverse_amount_units() {
6390 assert_approx_equal(
6391 InverseAmount::from_per_mol(6.02e+23_f64).to_per_mol(),
6392 InverseAmount::from_per_count(1.0_f64).to_per_mol(), 9
6393 );
6394 assert_approx_equal(
6395 InverseAmount::from_per_mol(1.0_f64).to_per_mol() * 1.66e-24,
6396 InverseAmount::from_per_mol(1.0_f64).to_per_count(), 9
6397 );
6398 assert_approx_equal(
6399 InverseAmount::from_per_mol(1000.0_f64).to_per_mol(),
6400 InverseAmount::from_per_mmol(1.0_f64).to_per_mol(), 9
6401 );
6402 assert_approx_equal(
6403 InverseAmount::from_per_mol(1.0_f64).to_per_mol() * 0.001,
6404 InverseAmount::from_per_mol(1.0_f64).to_per_mmol(), 9
6405 );
6406 assert_approx_equal(
6407 InverseAmount::from_per_mol(1000000.0_f64).to_per_mol(),
6408 InverseAmount::from_per_umol(1.0_f64).to_per_mol(), 9
6409 );
6410 assert_approx_equal(
6411 InverseAmount::from_per_mol(1.0_f64).to_per_mol() * 1e-06,
6412 InverseAmount::from_per_mol(1.0_f64).to_per_umol(), 9
6413 );
6414 assert_approx_equal(
6415 InverseAmount::from_per_mol(1000000000.0_f64).to_per_mol(),
6416 InverseAmount::from_per_nmol(1.0_f64).to_per_mol(), 9
6417 );
6418 assert_approx_equal(
6419 InverseAmount::from_per_mol(1.0_f64).to_per_mol() * 1e-09,
6420 InverseAmount::from_per_mol(1.0_f64).to_per_nmol(), 9
6421 );
6422 assert_approx_equal(
6423 InverseAmount::from_per_mol(1000000000000.0_f64).to_per_mol(),
6424 InverseAmount::from_per_pmol(1.0_f64).to_per_mol(), 9
6425 );
6426 assert_approx_equal(
6427 InverseAmount::from_per_mol(1.0_f64).to_per_mol() * 1e-12,
6428 InverseAmount::from_per_mol(1.0_f64).to_per_pmol(), 9
6429 );
6430 }
6431
6432 #[test]
6433 fn inverse_current_units() {
6434 assert_approx_equal(
6435 InverseCurrent::from_per_A(1000.0_f64).to_per_A(),
6436 InverseCurrent::from_per_mA(1.0_f64).to_per_A(), 9
6437 );
6438 assert_approx_equal(
6439 InverseCurrent::from_per_A(1.0_f64).to_per_A() * 0.001,
6440 InverseCurrent::from_per_A(1.0_f64).to_per_mA(), 9
6441 );
6442 assert_approx_equal(
6443 InverseCurrent::from_per_A(1000000.0_f64).to_per_A(),
6444 InverseCurrent::from_per_uA(1.0_f64).to_per_A(), 9
6445 );
6446 assert_approx_equal(
6447 InverseCurrent::from_per_A(1.0_f64).to_per_A() * 1e-06,
6448 InverseCurrent::from_per_A(1.0_f64).to_per_uA(), 9
6449 );
6450 assert_approx_equal(
6451 InverseCurrent::from_per_A(1000000000.0_f64).to_per_A(),
6452 InverseCurrent::from_per_nA(1.0_f64).to_per_A(), 9
6453 );
6454 assert_approx_equal(
6455 InverseCurrent::from_per_A(1.0_f64).to_per_A() * 1e-09,
6456 InverseCurrent::from_per_A(1.0_f64).to_per_nA(), 9
6457 );
6458 assert_approx_equal(
6459 InverseCurrent::from_per_A(0.001_f64).to_per_A(),
6460 InverseCurrent::from_per_kA(1.0_f64).to_per_A(), 9
6461 );
6462 assert_approx_equal(
6463 InverseCurrent::from_per_A(1.0_f64).to_per_A() * 1000.0,
6464 InverseCurrent::from_per_A(1.0_f64).to_per_kA(), 9
6465 );
6466 assert_approx_equal(
6467 InverseCurrent::from_per_A(1e-06_f64).to_per_A(),
6468 InverseCurrent::from_per_MA(1.0_f64).to_per_A(), 9
6469 );
6470 assert_approx_equal(
6471 InverseCurrent::from_per_A(1.0_f64).to_per_A() * 1000000.0,
6472 InverseCurrent::from_per_A(1.0_f64).to_per_MA(), 9
6473 );
6474 assert_approx_equal(
6475 InverseCurrent::from_per_A(1e-09_f64).to_per_A(),
6476 InverseCurrent::from_per_GA(1.0_f64).to_per_A(), 9
6477 );
6478 assert_approx_equal(
6479 InverseCurrent::from_per_A(1.0_f64).to_per_A() * 1000000000.0,
6480 InverseCurrent::from_per_A(1.0_f64).to_per_GA(), 9
6481 );
6482 }
6483
6484 #[test]
6485 fn inverse_distance_units() {
6486 assert_approx_equal(
6487 InverseDistance::from_per_m(100.0_f64).to_per_m(),
6488 InverseDistance::from_per_cm(1.0_f64).to_per_m(), 9
6489 );
6490 assert_approx_equal(
6491 InverseDistance::from_per_m(1.0_f64).to_per_m() * 0.01,
6492 InverseDistance::from_per_m(1.0_f64).to_per_cm(), 9
6493 );
6494 assert_approx_equal(
6495 InverseDistance::from_per_m(1000.0_f64).to_per_m(),
6496 InverseDistance::from_per_mm(1.0_f64).to_per_m(), 9
6497 );
6498 assert_approx_equal(
6499 InverseDistance::from_per_m(1.0_f64).to_per_m() * 0.001,
6500 InverseDistance::from_per_m(1.0_f64).to_per_mm(), 9
6501 );
6502 assert_approx_equal(
6503 InverseDistance::from_per_m(1000000.0_f64).to_per_m(),
6504 InverseDistance::from_per_um(1.0_f64).to_per_m(), 9
6505 );
6506 assert_approx_equal(
6507 InverseDistance::from_per_m(1.0_f64).to_per_m() * 1e-06,
6508 InverseDistance::from_per_m(1.0_f64).to_per_um(), 9
6509 );
6510 assert_approx_equal(
6511 InverseDistance::from_per_m(1000000000.0_f64).to_per_m(),
6512 InverseDistance::from_per_nm(1.0_f64).to_per_m(), 9
6513 );
6514 assert_approx_equal(
6515 InverseDistance::from_per_m(1.0_f64).to_per_m() * 1e-09,
6516 InverseDistance::from_per_m(1.0_f64).to_per_nm(), 9
6517 );
6518 assert_approx_equal(
6519 InverseDistance::from_per_m(1000000000000.0_f64).to_per_m(),
6520 InverseDistance::from_per_pm(1.0_f64).to_per_m(), 9
6521 );
6522 assert_approx_equal(
6523 InverseDistance::from_per_m(1.0_f64).to_per_m() * 1e-12,
6524 InverseDistance::from_per_m(1.0_f64).to_per_pm(), 9
6525 );
6526 assert_approx_equal(
6527 InverseDistance::from_per_m(0.001_f64).to_per_m(),
6528 InverseDistance::from_per_km(1.0_f64).to_per_m(), 9
6529 );
6530 assert_approx_equal(
6531 InverseDistance::from_per_m(1.0_f64).to_per_m() * 1000.0,
6532 InverseDistance::from_per_m(1.0_f64).to_per_km(), 9
6533 );
6534 assert_approx_equal(
6535 InverseDistance::from_per_m(6.68e-12_f64).to_per_m(),
6536 InverseDistance::from_per_au(1.0_f64).to_per_m(), 9
6537 );
6538 assert_approx_equal(
6539 InverseDistance::from_per_m(1.0_f64).to_per_m() * 149597870700.0,
6540 InverseDistance::from_per_m(1.0_f64).to_per_au(), 9
6541 );
6542 assert_approx_equal(
6543 InverseDistance::from_per_m(3.24e-17_f64).to_per_m(),
6544 InverseDistance::from_per_parsec(1.0_f64).to_per_m(), 9
6545 );
6546 assert_approx_equal(
6547 InverseDistance::from_per_m(1.0_f64).to_per_m() * 3.09e+16,
6548 InverseDistance::from_per_m(1.0_f64).to_per_parsec(), 9
6549 );
6550 assert_approx_equal(
6551 InverseDistance::from_per_m(1.06e-16_f64).to_per_m(),
6552 InverseDistance::from_per_lyr(1.0_f64).to_per_m(), 9
6553 );
6554 assert_approx_equal(
6555 InverseDistance::from_per_m(1.0_f64).to_per_m() * 9460528169656200.0,
6556 InverseDistance::from_per_m(1.0_f64).to_per_lyr(), 9
6557 );
6558 }
6559
6560 #[test]
6561 fn inverse_luminosity_units() {
6562 assert_approx_equal(
6563 InverseLuminosity::from_per_cd(1000.0_f64).to_per_cd(),
6564 InverseLuminosity::from_per_mcd(1.0_f64).to_per_cd(), 9
6565 );
6566 assert_approx_equal(
6567 InverseLuminosity::from_per_cd(1.0_f64).to_per_cd() * 0.001,
6568 InverseLuminosity::from_per_cd(1.0_f64).to_per_mcd(), 9
6569 );
6570 assert_approx_equal(
6571 InverseLuminosity::from_per_cd(1000000.0_f64).to_per_cd(),
6572 InverseLuminosity::from_per_ucd(1.0_f64).to_per_cd(), 9
6573 );
6574 assert_approx_equal(
6575 InverseLuminosity::from_per_cd(1.0_f64).to_per_cd() * 1e-06,
6576 InverseLuminosity::from_per_cd(1.0_f64).to_per_ucd(), 9
6577 );
6578 assert_approx_equal(
6579 InverseLuminosity::from_per_cd(1000000000.0_f64).to_per_cd(),
6580 InverseLuminosity::from_per_ncd(1.0_f64).to_per_cd(), 9
6581 );
6582 assert_approx_equal(
6583 InverseLuminosity::from_per_cd(1.0_f64).to_per_cd() * 1e-09,
6584 InverseLuminosity::from_per_cd(1.0_f64).to_per_ncd(), 9
6585 );
6586 assert_approx_equal(
6587 InverseLuminosity::from_per_cd(0.001_f64).to_per_cd(),
6588 InverseLuminosity::from_per_kcd(1.0_f64).to_per_cd(), 9
6589 );
6590 assert_approx_equal(
6591 InverseLuminosity::from_per_cd(1.0_f64).to_per_cd() * 1000.0,
6592 InverseLuminosity::from_per_cd(1.0_f64).to_per_kcd(), 9
6593 );
6594 assert_approx_equal(
6595 InverseLuminosity::from_per_cd(1e-06_f64).to_per_cd(),
6596 InverseLuminosity::from_per_Mcd(1.0_f64).to_per_cd(), 9
6597 );
6598 assert_approx_equal(
6599 InverseLuminosity::from_per_cd(1.0_f64).to_per_cd() * 1000000.0,
6600 InverseLuminosity::from_per_cd(1.0_f64).to_per_Mcd(), 9
6601 );
6602 assert_approx_equal(
6603 InverseLuminosity::from_per_cd(1e-09_f64).to_per_cd(),
6604 InverseLuminosity::from_per_Gcd(1.0_f64).to_per_cd(), 9
6605 );
6606 assert_approx_equal(
6607 InverseLuminosity::from_per_cd(1.0_f64).to_per_cd() * 1000000000.0,
6608 InverseLuminosity::from_per_cd(1.0_f64).to_per_Gcd(), 9
6609 );
6610 }
6611
6612 #[test]
6613 fn inverse_mass_units() {
6614 assert_approx_equal(
6615 InverseMass::from_per_kg(1000.0_f64).to_per_kg(),
6616 InverseMass::from_per_g(1.0_f64).to_per_kg(), 9
6617 );
6618 assert_approx_equal(
6619 InverseMass::from_per_kg(1.0_f64).to_per_kg() * 0.001,
6620 InverseMass::from_per_kg(1.0_f64).to_per_g(), 9
6621 );
6622 assert_approx_equal(
6623 InverseMass::from_per_kg(1000000.0_f64).to_per_kg(),
6624 InverseMass::from_per_mg(1.0_f64).to_per_kg(), 9
6625 );
6626 assert_approx_equal(
6627 InverseMass::from_per_kg(1.0_f64).to_per_kg() * 1e-06,
6628 InverseMass::from_per_kg(1.0_f64).to_per_mg(), 9
6629 );
6630 assert_approx_equal(
6631 InverseMass::from_per_kg(1000000000.0_f64).to_per_kg(),
6632 InverseMass::from_per_ug(1.0_f64).to_per_kg(), 9
6633 );
6634 assert_approx_equal(
6635 InverseMass::from_per_kg(1.0_f64).to_per_kg() * 1e-09,
6636 InverseMass::from_per_kg(1.0_f64).to_per_ug(), 9
6637 );
6638 assert_approx_equal(
6639 InverseMass::from_per_kg(1000000000000.0_f64).to_per_kg(),
6640 InverseMass::from_per_ng(1.0_f64).to_per_kg(), 9
6641 );
6642 assert_approx_equal(
6643 InverseMass::from_per_kg(1.0_f64).to_per_kg() * 1e-12,
6644 InverseMass::from_per_kg(1.0_f64).to_per_ng(), 9
6645 );
6646 assert_approx_equal(
6647 InverseMass::from_per_kg(1000000000000000.0_f64).to_per_kg(),
6648 InverseMass::from_per_pg(1.0_f64).to_per_kg(), 9
6649 );
6650 assert_approx_equal(
6651 InverseMass::from_per_kg(1.0_f64).to_per_kg() * 1e-15,
6652 InverseMass::from_per_kg(1.0_f64).to_per_pg(), 9
6653 );
6654 assert_approx_equal(
6655 InverseMass::from_per_kg(0.001_f64).to_per_kg(),
6656 InverseMass::from_per_tons(1.0_f64).to_per_kg(), 9
6657 );
6658 assert_approx_equal(
6659 InverseMass::from_per_kg(1.0_f64).to_per_kg() * 1000.0,
6660 InverseMass::from_per_kg(1.0_f64).to_per_tons(), 9
6661 );
6662 assert_approx_equal(
6663 InverseMass::from_per_kg(1.6699999999999999e-25_f64).to_per_kg(),
6664 InverseMass::from_per_earth_mass(1.0_f64).to_per_kg(), 9
6665 );
6666 assert_approx_equal(
6667 InverseMass::from_per_kg(1.0_f64).to_per_kg() * 5.97e+24,
6668 InverseMass::from_per_kg(1.0_f64).to_per_earth_mass(), 9
6669 );
6670 assert_approx_equal(
6671 InverseMass::from_per_kg(5.27e-28_f64).to_per_kg(),
6672 InverseMass::from_per_jupiter_mass(1.0_f64).to_per_kg(), 9
6673 );
6674 assert_approx_equal(
6675 InverseMass::from_per_kg(1.0_f64).to_per_kg() * 1.9e+27,
6676 InverseMass::from_per_kg(1.0_f64).to_per_jupiter_mass(), 9
6677 );
6678 assert_approx_equal(
6679 InverseMass::from_per_kg(5.03e-31_f64).to_per_kg(),
6680 InverseMass::from_per_solar_mass(1.0_f64).to_per_kg(), 9
6681 );
6682 assert_approx_equal(
6683 InverseMass::from_per_kg(1.0_f64).to_per_kg() * 1.99e+30,
6684 InverseMass::from_per_kg(1.0_f64).to_per_solar_mass(), 9
6685 );
6686 }
6687
6688 #[test]
6689 fn inverse_catalytic_activity_units() {
6690 assert_approx_equal(
6691 InverseCatalyticActivity::from_s_per_mol(60.0_f64).to_s_per_mol(),
6692 InverseCatalyticActivity::from_minutes_per_mole(1.0_f64).to_s_per_mol(), 9
6693 );
6694 assert_approx_equal(
6695 InverseCatalyticActivity::from_s_per_mol(1.0_f64).to_s_per_mol() * 0.0166666666666667,
6696 InverseCatalyticActivity::from_s_per_mol(1.0_f64).to_minutes_per_mole(), 9
6697 );
6698 assert_approx_equal(
6699 InverseCatalyticActivity::from_s_per_mol(3600.0_f64).to_s_per_mol(),
6700 InverseCatalyticActivity::from_hours_per_mole(1.0_f64).to_s_per_mol(), 9
6701 );
6702 assert_approx_equal(
6703 InverseCatalyticActivity::from_s_per_mol(1.0_f64).to_s_per_mol() * 0.000277777777777778,
6704 InverseCatalyticActivity::from_s_per_mol(1.0_f64).to_hours_per_mole(), 9
6705 );
6706 }
6707
6708 #[test]
6709 fn molar_volume_units() {
6710 assert_approx_equal(
6711 MolarVolume::from_m3_per_mol(0.001_f64).to_m3_per_mol(),
6712 MolarVolume::from_L_per_mol(1.0_f64).to_m3_per_mol(), 9
6713 );
6714 assert_approx_equal(
6715 MolarVolume::from_m3_per_mol(1.0_f64).to_m3_per_mol() * 1000.0,
6716 MolarVolume::from_m3_per_mol(1.0_f64).to_L_per_mol(), 9
6717 );
6718 assert_approx_equal(
6719 MolarVolume::from_m3_per_mol(0.001_f64).to_m3_per_mol(),
6720 MolarVolume::from_liters_per_mole(1.0_f64).to_m3_per_mol(), 9
6721 );
6722 assert_approx_equal(
6723 MolarVolume::from_m3_per_mol(1.0_f64).to_m3_per_mol() * 1000.0,
6724 MolarVolume::from_m3_per_mol(1.0_f64).to_liters_per_mole(), 9
6725 );
6726 }
6727
6728 #[test]
6729 fn specific_heat_capacity_units() {
6730 assert_approx_equal(
6731 SpecificHeatCapacity::from_J_per_kgK(1000.0_f64).to_J_per_kgK(),
6732 SpecificHeatCapacity::from_joules_per_gram_kelvin(1.0_f64).to_J_per_kgK(), 9
6733 );
6734 assert_approx_equal(
6735 SpecificHeatCapacity::from_J_per_kgK(1.0_f64).to_J_per_kgK() * 0.001,
6736 SpecificHeatCapacity::from_J_per_kgK(1.0_f64).to_joules_per_gram_kelvin(), 9
6737 );
6738 assert_approx_equal(
6739 SpecificHeatCapacity::from_J_per_kgK(1000.0_f64).to_J_per_kgK(),
6740 SpecificHeatCapacity::from_J_per_gK(1.0_f64).to_J_per_kgK(), 9
6741 );
6742 assert_approx_equal(
6743 SpecificHeatCapacity::from_J_per_kgK(1.0_f64).to_J_per_kgK() * 0.001,
6744 SpecificHeatCapacity::from_J_per_kgK(1.0_f64).to_J_per_gK(), 9
6745 );
6746 }
6747
6748 #[test]
6749 fn elastance_units() {
6750 assert_approx_equal(
6751 Elastance::from_per_F(1000.0_f64).to_per_F(),
6752 Elastance::from_per_mF(1.0_f64).to_per_F(), 9
6753 );
6754 assert_approx_equal(
6755 Elastance::from_per_F(1.0_f64).to_per_F() * 0.001,
6756 Elastance::from_per_F(1.0_f64).to_per_mF(), 9
6757 );
6758 assert_approx_equal(
6759 Elastance::from_per_F(1000000.0_f64).to_per_F(),
6760 Elastance::from_per_uF(1.0_f64).to_per_F(), 9
6761 );
6762 assert_approx_equal(
6763 Elastance::from_per_F(1.0_f64).to_per_F() * 1e-06,
6764 Elastance::from_per_F(1.0_f64).to_per_uF(), 9
6765 );
6766 assert_approx_equal(
6767 Elastance::from_per_F(1000000000.0_f64).to_per_F(),
6768 Elastance::from_per_nF(1.0_f64).to_per_F(), 9
6769 );
6770 assert_approx_equal(
6771 Elastance::from_per_F(1.0_f64).to_per_F() * 1e-09,
6772 Elastance::from_per_F(1.0_f64).to_per_nF(), 9
6773 );
6774 assert_approx_equal(
6775 Elastance::from_per_F(1000000000000.0_f64).to_per_F(),
6776 Elastance::from_per_pF(1.0_f64).to_per_F(), 9
6777 );
6778 assert_approx_equal(
6779 Elastance::from_per_F(1.0_f64).to_per_F() * 1e-12,
6780 Elastance::from_per_F(1.0_f64).to_per_pF(), 9
6781 );
6782 assert_approx_equal(
6783 Elastance::from_per_F(0.001_f64).to_per_F(),
6784 Elastance::from_per_kF(1.0_f64).to_per_F(), 9
6785 );
6786 assert_approx_equal(
6787 Elastance::from_per_F(1.0_f64).to_per_F() * 1000.0,
6788 Elastance::from_per_F(1.0_f64).to_per_kF(), 9
6789 );
6790 assert_approx_equal(
6791 Elastance::from_per_F(1e-06_f64).to_per_F(),
6792 Elastance::from_per_MF(1.0_f64).to_per_F(), 9
6793 );
6794 assert_approx_equal(
6795 Elastance::from_per_F(1.0_f64).to_per_F() * 1000000.0,
6796 Elastance::from_per_F(1.0_f64).to_per_MF(), 9
6797 );
6798 assert_approx_equal(
6799 Elastance::from_per_F(1e-09_f64).to_per_F(),
6800 Elastance::from_per_GF(1.0_f64).to_per_F(), 9
6801 );
6802 assert_approx_equal(
6803 Elastance::from_per_F(1.0_f64).to_per_F() * 1000000000.0,
6804 Elastance::from_per_F(1.0_f64).to_per_GF(), 9
6805 );
6806 }
6807
6808 #[test]
6809 fn inverse_charge_units() {
6810 assert_approx_equal(
6811 InverseCharge::from_per_C(1000.0_f64).to_per_C(),
6812 InverseCharge::from_per_mC(1.0_f64).to_per_C(), 9
6813 );
6814 assert_approx_equal(
6815 InverseCharge::from_per_C(1.0_f64).to_per_C() * 0.001,
6816 InverseCharge::from_per_C(1.0_f64).to_per_mC(), 9
6817 );
6818 assert_approx_equal(
6819 InverseCharge::from_per_C(1000000.0_f64).to_per_C(),
6820 InverseCharge::from_per_uC(1.0_f64).to_per_C(), 9
6821 );
6822 assert_approx_equal(
6823 InverseCharge::from_per_C(1.0_f64).to_per_C() * 1e-06,
6824 InverseCharge::from_per_C(1.0_f64).to_per_uC(), 9
6825 );
6826 assert_approx_equal(
6827 InverseCharge::from_per_C(1000000000.0_f64).to_per_C(),
6828 InverseCharge::from_per_nC(1.0_f64).to_per_C(), 9
6829 );
6830 assert_approx_equal(
6831 InverseCharge::from_per_C(1.0_f64).to_per_C() * 1e-09,
6832 InverseCharge::from_per_C(1.0_f64).to_per_nC(), 9
6833 );
6834 assert_approx_equal(
6835 InverseCharge::from_per_C(0.001_f64).to_per_C(),
6836 InverseCharge::from_per_kC(1.0_f64).to_per_C(), 9
6837 );
6838 assert_approx_equal(
6839 InverseCharge::from_per_C(1.0_f64).to_per_C() * 1000.0,
6840 InverseCharge::from_per_C(1.0_f64).to_per_kC(), 9
6841 );
6842 assert_approx_equal(
6843 InverseCharge::from_per_C(1e-06_f64).to_per_C(),
6844 InverseCharge::from_per_MC(1.0_f64).to_per_C(), 9
6845 );
6846 assert_approx_equal(
6847 InverseCharge::from_per_C(1.0_f64).to_per_C() * 1000000.0,
6848 InverseCharge::from_per_C(1.0_f64).to_per_MC(), 9
6849 );
6850 assert_approx_equal(
6851 InverseCharge::from_per_C(1e-09_f64).to_per_C(),
6852 InverseCharge::from_per_GC(1.0_f64).to_per_C(), 9
6853 );
6854 assert_approx_equal(
6855 InverseCharge::from_per_C(1.0_f64).to_per_C() * 1000000000.0,
6856 InverseCharge::from_per_C(1.0_f64).to_per_GC(), 9
6857 );
6858 }
6859
6860 #[test]
6861 fn inverse_inductance_units() {
6862 assert_approx_equal(
6863 InverseInductance::from_per_H(1000.0_f64).to_per_H(),
6864 InverseInductance::from_per_mH(1.0_f64).to_per_H(), 9
6865 );
6866 assert_approx_equal(
6867 InverseInductance::from_per_H(1.0_f64).to_per_H() * 0.001,
6868 InverseInductance::from_per_H(1.0_f64).to_per_mH(), 9
6869 );
6870 assert_approx_equal(
6871 InverseInductance::from_per_H(1000000.0_f64).to_per_H(),
6872 InverseInductance::from_per_uH(1.0_f64).to_per_H(), 9
6873 );
6874 assert_approx_equal(
6875 InverseInductance::from_per_H(1.0_f64).to_per_H() * 1e-06,
6876 InverseInductance::from_per_H(1.0_f64).to_per_uH(), 9
6877 );
6878 assert_approx_equal(
6879 InverseInductance::from_per_H(1000000000.0_f64).to_per_H(),
6880 InverseInductance::from_per_nH(1.0_f64).to_per_H(), 9
6881 );
6882 assert_approx_equal(
6883 InverseInductance::from_per_H(1.0_f64).to_per_H() * 1e-09,
6884 InverseInductance::from_per_H(1.0_f64).to_per_nH(), 9
6885 );
6886 assert_approx_equal(
6887 InverseInductance::from_per_H(0.001_f64).to_per_H(),
6888 InverseInductance::from_per_kH(1.0_f64).to_per_H(), 9
6889 );
6890 assert_approx_equal(
6891 InverseInductance::from_per_H(1.0_f64).to_per_H() * 1000.0,
6892 InverseInductance::from_per_H(1.0_f64).to_per_kH(), 9
6893 );
6894 assert_approx_equal(
6895 InverseInductance::from_per_H(1e-06_f64).to_per_H(),
6896 InverseInductance::from_per_MH(1.0_f64).to_per_H(), 9
6897 );
6898 assert_approx_equal(
6899 InverseInductance::from_per_H(1.0_f64).to_per_H() * 1000000.0,
6900 InverseInductance::from_per_H(1.0_f64).to_per_MH(), 9
6901 );
6902 assert_approx_equal(
6903 InverseInductance::from_per_H(1e-09_f64).to_per_H(),
6904 InverseInductance::from_per_GH(1.0_f64).to_per_H(), 9
6905 );
6906 assert_approx_equal(
6907 InverseInductance::from_per_H(1.0_f64).to_per_H() * 1000000000.0,
6908 InverseInductance::from_per_H(1.0_f64).to_per_GH(), 9
6909 );
6910 }
6911
6912 #[test]
6913 fn inverse_luminous_flux_units() {
6914 assert_approx_equal(
6915 InverseLuminousFlux::from_per_lm(1000.0_f64).to_per_lm(),
6916 InverseLuminousFlux::from_per_mlm(1.0_f64).to_per_lm(), 9
6917 );
6918 assert_approx_equal(
6919 InverseLuminousFlux::from_per_lm(1.0_f64).to_per_lm() * 0.001,
6920 InverseLuminousFlux::from_per_lm(1.0_f64).to_per_mlm(), 9
6921 );
6922 assert_approx_equal(
6923 InverseLuminousFlux::from_per_lm(1000000.0_f64).to_per_lm(),
6924 InverseLuminousFlux::from_per_ulm(1.0_f64).to_per_lm(), 9
6925 );
6926 assert_approx_equal(
6927 InverseLuminousFlux::from_per_lm(1.0_f64).to_per_lm() * 1e-06,
6928 InverseLuminousFlux::from_per_lm(1.0_f64).to_per_ulm(), 9
6929 );
6930 assert_approx_equal(
6931 InverseLuminousFlux::from_per_lm(1000000000.0_f64).to_per_lm(),
6932 InverseLuminousFlux::from_per_nlm(1.0_f64).to_per_lm(), 9
6933 );
6934 assert_approx_equal(
6935 InverseLuminousFlux::from_per_lm(1.0_f64).to_per_lm() * 1e-09,
6936 InverseLuminousFlux::from_per_lm(1.0_f64).to_per_nlm(), 9
6937 );
6938 assert_approx_equal(
6939 InverseLuminousFlux::from_per_lm(0.001_f64).to_per_lm(),
6940 InverseLuminousFlux::from_per_klm(1.0_f64).to_per_lm(), 9
6941 );
6942 assert_approx_equal(
6943 InverseLuminousFlux::from_per_lm(1.0_f64).to_per_lm() * 1000.0,
6944 InverseLuminousFlux::from_per_lm(1.0_f64).to_per_klm(), 9
6945 );
6946 assert_approx_equal(
6947 InverseLuminousFlux::from_per_lm(1e-06_f64).to_per_lm(),
6948 InverseLuminousFlux::from_per_Mlm(1.0_f64).to_per_lm(), 9
6949 );
6950 assert_approx_equal(
6951 InverseLuminousFlux::from_per_lm(1.0_f64).to_per_lm() * 1000000.0,
6952 InverseLuminousFlux::from_per_lm(1.0_f64).to_per_Mlm(), 9
6953 );
6954 assert_approx_equal(
6955 InverseLuminousFlux::from_per_lm(1e-09_f64).to_per_lm(),
6956 InverseLuminousFlux::from_per_Glm(1.0_f64).to_per_lm(), 9
6957 );
6958 assert_approx_equal(
6959 InverseLuminousFlux::from_per_lm(1.0_f64).to_per_lm() * 1000000000.0,
6960 InverseLuminousFlux::from_per_lm(1.0_f64).to_per_Glm(), 9
6961 );
6962 }
6963
6964 #[test]
6965 fn inverse_magnetic_flux_units() {
6966 assert_approx_equal(
6967 InverseMagneticFlux::from_per_Wb(1000.0_f64).to_per_Wb(),
6968 InverseMagneticFlux::from_per_mWb(1.0_f64).to_per_Wb(), 9
6969 );
6970 assert_approx_equal(
6971 InverseMagneticFlux::from_per_Wb(1.0_f64).to_per_Wb() * 0.001,
6972 InverseMagneticFlux::from_per_Wb(1.0_f64).to_per_mWb(), 9
6973 );
6974 assert_approx_equal(
6975 InverseMagneticFlux::from_per_Wb(1000000.0_f64).to_per_Wb(),
6976 InverseMagneticFlux::from_per_uWb(1.0_f64).to_per_Wb(), 9
6977 );
6978 assert_approx_equal(
6979 InverseMagneticFlux::from_per_Wb(1.0_f64).to_per_Wb() * 1e-06,
6980 InverseMagneticFlux::from_per_Wb(1.0_f64).to_per_uWb(), 9
6981 );
6982 assert_approx_equal(
6983 InverseMagneticFlux::from_per_Wb(1000000000.0_f64).to_per_Wb(),
6984 InverseMagneticFlux::from_per_nWb(1.0_f64).to_per_Wb(), 9
6985 );
6986 assert_approx_equal(
6987 InverseMagneticFlux::from_per_Wb(1.0_f64).to_per_Wb() * 1e-09,
6988 InverseMagneticFlux::from_per_Wb(1.0_f64).to_per_nWb(), 9
6989 );
6990 assert_approx_equal(
6991 InverseMagneticFlux::from_per_Wb(0.001_f64).to_per_Wb(),
6992 InverseMagneticFlux::from_per_kWb(1.0_f64).to_per_Wb(), 9
6993 );
6994 assert_approx_equal(
6995 InverseMagneticFlux::from_per_Wb(1.0_f64).to_per_Wb() * 1000.0,
6996 InverseMagneticFlux::from_per_Wb(1.0_f64).to_per_kWb(), 9
6997 );
6998 assert_approx_equal(
6999 InverseMagneticFlux::from_per_Wb(1e-06_f64).to_per_Wb(),
7000 InverseMagneticFlux::from_per_MWb(1.0_f64).to_per_Wb(), 9
7001 );
7002 assert_approx_equal(
7003 InverseMagneticFlux::from_per_Wb(1.0_f64).to_per_Wb() * 1000000.0,
7004 InverseMagneticFlux::from_per_Wb(1.0_f64).to_per_MWb(), 9
7005 );
7006 assert_approx_equal(
7007 InverseMagneticFlux::from_per_Wb(1e-09_f64).to_per_Wb(),
7008 InverseMagneticFlux::from_per_GWb(1.0_f64).to_per_Wb(), 9
7009 );
7010 assert_approx_equal(
7011 InverseMagneticFlux::from_per_Wb(1.0_f64).to_per_Wb() * 1000000000.0,
7012 InverseMagneticFlux::from_per_Wb(1.0_f64).to_per_GWb(), 9
7013 );
7014 }
7015
7016 #[test]
7017 fn inverse_voltage_units() {
7018 assert_approx_equal(
7019 InverseVoltage::from_per_V(1000.0_f64).to_per_V(),
7020 InverseVoltage::from_per_mV(1.0_f64).to_per_V(), 9
7021 );
7022 assert_approx_equal(
7023 InverseVoltage::from_per_V(1.0_f64).to_per_V() * 0.001,
7024 InverseVoltage::from_per_V(1.0_f64).to_per_mV(), 9
7025 );
7026 assert_approx_equal(
7027 InverseVoltage::from_per_V(1000000.0_f64).to_per_V(),
7028 InverseVoltage::from_per_uV(1.0_f64).to_per_V(), 9
7029 );
7030 assert_approx_equal(
7031 InverseVoltage::from_per_V(1.0_f64).to_per_V() * 1e-06,
7032 InverseVoltage::from_per_V(1.0_f64).to_per_uV(), 9
7033 );
7034 assert_approx_equal(
7035 InverseVoltage::from_per_V(1000000000.0_f64).to_per_V(),
7036 InverseVoltage::from_per_nV(1.0_f64).to_per_V(), 9
7037 );
7038 assert_approx_equal(
7039 InverseVoltage::from_per_V(1.0_f64).to_per_V() * 1e-09,
7040 InverseVoltage::from_per_V(1.0_f64).to_per_nV(), 9
7041 );
7042 assert_approx_equal(
7043 InverseVoltage::from_per_V(0.001_f64).to_per_V(),
7044 InverseVoltage::from_per_kV(1.0_f64).to_per_V(), 9
7045 );
7046 assert_approx_equal(
7047 InverseVoltage::from_per_V(1.0_f64).to_per_V() * 1000.0,
7048 InverseVoltage::from_per_V(1.0_f64).to_per_kV(), 9
7049 );
7050 assert_approx_equal(
7051 InverseVoltage::from_per_V(1e-06_f64).to_per_V(),
7052 InverseVoltage::from_per_MV(1.0_f64).to_per_V(), 9
7053 );
7054 assert_approx_equal(
7055 InverseVoltage::from_per_V(1.0_f64).to_per_V() * 1000000.0,
7056 InverseVoltage::from_per_V(1.0_f64).to_per_MV(), 9
7057 );
7058 assert_approx_equal(
7059 InverseVoltage::from_per_V(1e-09_f64).to_per_V(),
7060 InverseVoltage::from_per_GV(1.0_f64).to_per_V(), 9
7061 );
7062 assert_approx_equal(
7063 InverseVoltage::from_per_V(1.0_f64).to_per_V() * 1000000000.0,
7064 InverseVoltage::from_per_V(1.0_f64).to_per_GV(), 9
7065 );
7066 }
7067
7068 #[test]
7069 fn inverse_angle_units() {
7070 assert_approx_equal(
7071 InverseAngle::from_per_rad(57.2957795130823_f64).to_per_rad(),
7072 InverseAngle::from_per_degrees(1.0_f64).to_per_rad(), 9
7073 );
7074 assert_approx_equal(
7075 InverseAngle::from_per_rad(1.0_f64).to_per_rad() * 0.0174532925199433,
7076 InverseAngle::from_per_rad(1.0_f64).to_per_degrees(), 9
7077 );
7078 assert_approx_equal(
7079 InverseAngle::from_per_rad(57.2957795130823_f64).to_per_rad(),
7080 InverseAngle::from_per_deg(1.0_f64).to_per_rad(), 9
7081 );
7082 assert_approx_equal(
7083 InverseAngle::from_per_rad(1.0_f64).to_per_rad() * 0.0174532925199433,
7084 InverseAngle::from_per_rad(1.0_f64).to_per_deg(), 9
7085 );
7086 }
7087
7088 #[test]
7089 fn inverse_area_units() {
7090 assert_approx_equal(
7091 InverseArea::from_per_m2(10000.0_f64).to_per_m2(),
7092 InverseArea::from_per_cm2(1.0_f64).to_per_m2(), 9
7093 );
7094 assert_approx_equal(
7095 InverseArea::from_per_m2(1.0_f64).to_per_m2() * 0.0001,
7096 InverseArea::from_per_m2(1.0_f64).to_per_cm2(), 9
7097 );
7098 assert_approx_equal(
7099 InverseArea::from_per_m2(10000.0_f64).to_per_m2(),
7100 InverseArea::from_per_square_cm(1.0_f64).to_per_m2(), 9
7101 );
7102 assert_approx_equal(
7103 InverseArea::from_per_m2(1.0_f64).to_per_m2() * 0.0001,
7104 InverseArea::from_per_m2(1.0_f64).to_per_square_cm(), 9
7105 );
7106 assert_approx_equal(
7107 InverseArea::from_per_m2(1000000.0_f64).to_per_m2(),
7108 InverseArea::from_per_mm2(1.0_f64).to_per_m2(), 9
7109 );
7110 assert_approx_equal(
7111 InverseArea::from_per_m2(1.0_f64).to_per_m2() * 1e-06,
7112 InverseArea::from_per_m2(1.0_f64).to_per_mm2(), 9
7113 );
7114 assert_approx_equal(
7115 InverseArea::from_per_m2(1000000000000.0_f64).to_per_m2(),
7116 InverseArea::from_per_um2(1.0_f64).to_per_m2(), 9
7117 );
7118 assert_approx_equal(
7119 InverseArea::from_per_m2(1.0_f64).to_per_m2() * 1e-12,
7120 InverseArea::from_per_m2(1.0_f64).to_per_um2(), 9
7121 );
7122 assert_approx_equal(
7123 InverseArea::from_per_m2(1e+18_f64).to_per_m2(),
7124 InverseArea::from_per_nm2(1.0_f64).to_per_m2(), 9
7125 );
7126 assert_approx_equal(
7127 InverseArea::from_per_m2(1.0_f64).to_per_m2() * 1e-18,
7128 InverseArea::from_per_m2(1.0_f64).to_per_nm2(), 9
7129 );
7130 assert_approx_equal(
7131 InverseArea::from_per_m2(1e-06_f64).to_per_m2(),
7132 InverseArea::from_per_km2(1.0_f64).to_per_m2(), 9
7133 );
7134 assert_approx_equal(
7135 InverseArea::from_per_m2(1.0_f64).to_per_m2() * 1000000.0,
7136 InverseArea::from_per_m2(1.0_f64).to_per_km2(), 9
7137 );
7138 }
7139
7140 #[test]
7141 fn inverse_volume_units() {
7142 assert_approx_equal(
7143 InverseVolume::from_per_m3(1000000.0_f64).to_per_m3(),
7144 InverseVolume::from_per_cc(1.0_f64).to_per_m3(), 9
7145 );
7146 assert_approx_equal(
7147 InverseVolume::from_per_m3(1.0_f64).to_per_m3() * 1e-06,
7148 InverseVolume::from_per_m3(1.0_f64).to_per_cc(), 9
7149 );
7150 assert_approx_equal(
7151 InverseVolume::from_per_m3(1000.0_f64).to_per_m3(),
7152 InverseVolume::from_per_L(1.0_f64).to_per_m3(), 9
7153 );
7154 assert_approx_equal(
7155 InverseVolume::from_per_m3(1.0_f64).to_per_m3() * 0.001,
7156 InverseVolume::from_per_m3(1.0_f64).to_per_L(), 9
7157 );
7158 assert_approx_equal(
7159 InverseVolume::from_per_m3(1000.0_f64).to_per_m3(),
7160 InverseVolume::from_per_liters(1.0_f64).to_per_m3(), 9
7161 );
7162 assert_approx_equal(
7163 InverseVolume::from_per_m3(1.0_f64).to_per_m3() * 0.001,
7164 InverseVolume::from_per_m3(1.0_f64).to_per_liters(), 9
7165 );
7166 assert_approx_equal(
7167 InverseVolume::from_per_m3(1000000.0_f64).to_per_m3(),
7168 InverseVolume::from_per_mL(1.0_f64).to_per_m3(), 9
7169 );
7170 assert_approx_equal(
7171 InverseVolume::from_per_m3(1.0_f64).to_per_m3() * 1e-06,
7172 InverseVolume::from_per_m3(1.0_f64).to_per_mL(), 9
7173 );
7174 assert_approx_equal(
7175 InverseVolume::from_per_m3(1000000000.0_f64).to_per_m3(),
7176 InverseVolume::from_per_uL(1.0_f64).to_per_m3(), 9
7177 );
7178 assert_approx_equal(
7179 InverseVolume::from_per_m3(1.0_f64).to_per_m3() * 1e-09,
7180 InverseVolume::from_per_m3(1.0_f64).to_per_uL(), 9
7181 );
7182 assert_approx_equal(
7183 InverseVolume::from_per_m3(1000000000000.0_f64).to_per_m3(),
7184 InverseVolume::from_per_nL(1.0_f64).to_per_m3(), 9
7185 );
7186 assert_approx_equal(
7187 InverseVolume::from_per_m3(1.0_f64).to_per_m3() * 1e-12,
7188 InverseVolume::from_per_m3(1.0_f64).to_per_nL(), 9
7189 );
7190 assert_approx_equal(
7191 InverseVolume::from_per_m3(1000000000000000.0_f64).to_per_m3(),
7192 InverseVolume::from_per_pL(1.0_f64).to_per_m3(), 9
7193 );
7194 assert_approx_equal(
7195 InverseVolume::from_per_m3(1.0_f64).to_per_m3() * 1e-15,
7196 InverseVolume::from_per_m3(1.0_f64).to_per_pL(), 9
7197 );
7198 assert_approx_equal(
7199 InverseVolume::from_per_m3(0.001_f64).to_per_m3(),
7200 InverseVolume::from_per_ML(1.0_f64).to_per_m3(), 9
7201 );
7202 assert_approx_equal(
7203 InverseVolume::from_per_m3(1.0_f64).to_per_m3() * 1000.0,
7204 InverseVolume::from_per_m3(1.0_f64).to_per_ML(), 9
7205 );
7206 assert_approx_equal(
7207 InverseVolume::from_per_m3(1e-06_f64).to_per_m3(),
7208 InverseVolume::from_per_GL(1.0_f64).to_per_m3(), 9
7209 );
7210 assert_approx_equal(
7211 InverseVolume::from_per_m3(1.0_f64).to_per_m3() * 1000000.0,
7212 InverseVolume::from_per_m3(1.0_f64).to_per_GL(), 9
7213 );
7214 }
7215
7216 #[test]
7217 fn area_per_mass_units() {
7218 assert_approx_equal(
7219 AreaPerMass::from_m2_per_kg(1000.0_f64).to_m2_per_kg(),
7220 AreaPerMass::from_m2_per_g(1.0_f64).to_m2_per_kg(), 9
7221 );
7222 assert_approx_equal(
7223 AreaPerMass::from_m2_per_kg(1.0_f64).to_m2_per_kg() * 0.001,
7224 AreaPerMass::from_m2_per_kg(1.0_f64).to_m2_per_g(), 9
7225 );
7226 assert_approx_equal(
7227 AreaPerMass::from_m2_per_kg(1000.0_f64).to_m2_per_kg(),
7228 AreaPerMass::from_square_meters_per_gram(1.0_f64).to_m2_per_kg(), 9
7229 );
7230 assert_approx_equal(
7231 AreaPerMass::from_m2_per_kg(1.0_f64).to_m2_per_kg() * 0.001,
7232 AreaPerMass::from_m2_per_kg(1.0_f64).to_square_meters_per_gram(), 9
7233 );
7234 assert_approx_equal(
7235 AreaPerMass::from_m2_per_kg(0.1_f64).to_m2_per_kg(),
7236 AreaPerMass::from_cm2_per_g(1.0_f64).to_m2_per_kg(), 9
7237 );
7238 assert_approx_equal(
7239 AreaPerMass::from_m2_per_kg(1.0_f64).to_m2_per_kg() * 10.0,
7240 AreaPerMass::from_m2_per_kg(1.0_f64).to_cm2_per_g(), 9
7241 );
7242 assert_approx_equal(
7243 AreaPerMass::from_m2_per_kg(0.1_f64).to_m2_per_kg(),
7244 AreaPerMass::from_square_centimeters_per_gram(1.0_f64).to_m2_per_kg(), 9
7245 );
7246 assert_approx_equal(
7247 AreaPerMass::from_m2_per_kg(1.0_f64).to_m2_per_kg() * 10.0,
7248 AreaPerMass::from_m2_per_kg(1.0_f64).to_square_centimeters_per_gram(), 9
7249 );
7250 }
7251
7252 #[test]
7253 fn inverse_acceleration_units() {
7254 assert_approx_equal(
7255 InverseAcceleration::from_s2pm(1000.0_f64).to_s2pm(),
7256 InverseAcceleration::from_s2pmm(1.0_f64).to_s2pm(), 9
7257 );
7258 assert_approx_equal(
7259 InverseAcceleration::from_s2pm(1.0_f64).to_s2pm() * 0.001,
7260 InverseAcceleration::from_s2pm(1.0_f64).to_s2pmm(), 9
7261 );
7262 assert_approx_equal(
7263 InverseAcceleration::from_s2pm(1000000.0_f64).to_s2pm(),
7264 InverseAcceleration::from_hours_squared_per_kilometers(1.0_f64).to_s2pm(), 9
7265 );
7266 assert_approx_equal(
7267 InverseAcceleration::from_s2pm(1.0_f64).to_s2pm() * 1e-06,
7268 InverseAcceleration::from_s2pm(1.0_f64).to_hours_squared_per_kilometers(), 9
7269 );
7270 assert_approx_equal(
7271 InverseAcceleration::from_s2pm(12960.0_f64).to_s2pm(),
7272 InverseAcceleration::from_hr2_per_km(1.0_f64).to_s2pm(), 9
7273 );
7274 assert_approx_equal(
7275 InverseAcceleration::from_s2pm(1.0_f64).to_s2pm() * 7.72e-05,
7276 InverseAcceleration::from_s2pm(1.0_f64).to_hr2_per_km(), 9
7277 );
7278 }
7279
7280 #[test]
7281 fn inverse_angular_acceleration_units() {
7282 assert_approx_equal(
7283 InverseAngularAcceleration::from_s2prad(57.2957795130823_f64).to_s2prad(),
7284 InverseAngularAcceleration::from_seconds_squared_per_degree(1.0_f64).to_s2prad(), 9
7285 );
7286 assert_approx_equal(
7287 InverseAngularAcceleration::from_s2prad(1.0_f64).to_s2prad() * 0.0174532925199433,
7288 InverseAngularAcceleration::from_s2prad(1.0_f64).to_seconds_squared_per_degree(), 9
7289 );
7290 }
7291
7292 #[test]
7293 fn inverse_angular_momentum_units() {
7294 assert_approx_equal(
7295 InverseAngularMomentum::from_s_per_kgm2rad(10000000.0_f64).to_s_per_kgm2rad(),
7296 InverseAngularMomentum::from_s_per_gcm2rad(1.0_f64).to_s_per_kgm2rad(), 9
7297 );
7298 assert_approx_equal(
7299 InverseAngularMomentum::from_s_per_kgm2rad(1.0_f64).to_s_per_kgm2rad() * 1e-07,
7300 InverseAngularMomentum::from_s_per_kgm2rad(1.0_f64).to_s_per_gcm2rad(), 9
7301 );
7302 }
7303
7304 #[test]
7305 fn inverse_angular_velocity_units() {
7306 assert_approx_equal(
7307 InverseAngularVelocity::from_s_per_rad(57.2957795130823_f64).to_s_per_rad(),
7308 InverseAngularVelocity::from_seconds_per_degree(1.0_f64).to_s_per_rad(), 9
7309 );
7310 assert_approx_equal(
7311 InverseAngularVelocity::from_s_per_rad(1.0_f64).to_s_per_rad() * 0.0174532925199433,
7312 InverseAngularVelocity::from_s_per_rad(1.0_f64).to_seconds_per_degree(), 9
7313 );
7314 assert_approx_equal(
7315 InverseAngularVelocity::from_s_per_rad(57.2957795130823_f64).to_s_per_rad(),
7316 InverseAngularVelocity::from_s_per_deg(1.0_f64).to_s_per_rad(), 9
7317 );
7318 assert_approx_equal(
7319 InverseAngularVelocity::from_s_per_rad(1.0_f64).to_s_per_rad() * 0.0174532925199433,
7320 InverseAngularVelocity::from_s_per_rad(1.0_f64).to_s_per_deg(), 9
7321 );
7322 assert_approx_equal(
7323 InverseAngularVelocity::from_s_per_rad(0.159154943091895_f64).to_s_per_rad(),
7324 InverseAngularVelocity::from_spr(1.0_f64).to_s_per_rad(), 9
7325 );
7326 assert_approx_equal(
7327 InverseAngularVelocity::from_s_per_rad(1.0_f64).to_s_per_rad() * 6.28318530717959,
7328 InverseAngularVelocity::from_s_per_rad(1.0_f64).to_spr(), 9
7329 );
7330 assert_approx_equal(
7331 InverseAngularVelocity::from_s_per_rad(9.54929658551372_f64).to_s_per_rad(),
7332 InverseAngularVelocity::from_mpr(1.0_f64).to_s_per_rad(), 9
7333 );
7334 assert_approx_equal(
7335 InverseAngularVelocity::from_s_per_rad(1.0_f64).to_s_per_rad() * 0.10471975511966,
7336 InverseAngularVelocity::from_s_per_rad(1.0_f64).to_mpr(), 9
7337 );
7338 assert_approx_equal(
7339 InverseAngularVelocity::from_s_per_rad(572.957795130823_f64).to_s_per_rad(),
7340 InverseAngularVelocity::from_hpr(1.0_f64).to_s_per_rad(), 9
7341 );
7342 assert_approx_equal(
7343 InverseAngularVelocity::from_s_per_rad(1.0_f64).to_s_per_rad() * 0.0017453292519943,
7344 InverseAngularVelocity::from_s_per_rad(1.0_f64).to_hpr(), 9
7345 );
7346 }
7347
7348 #[test]
7349 fn inverse_energy_units() {
7350 assert_approx_equal(
7351 InverseEnergy::from_per_J(1000.0_f64).to_per_J(),
7352 InverseEnergy::from_per_mJ(1.0_f64).to_per_J(), 9
7353 );
7354 assert_approx_equal(
7355 InverseEnergy::from_per_J(1.0_f64).to_per_J() * 0.001,
7356 InverseEnergy::from_per_J(1.0_f64).to_per_mJ(), 9
7357 );
7358 assert_approx_equal(
7359 InverseEnergy::from_per_J(1000000.0_f64).to_per_J(),
7360 InverseEnergy::from_per_uJ(1.0_f64).to_per_J(), 9
7361 );
7362 assert_approx_equal(
7363 InverseEnergy::from_per_J(1.0_f64).to_per_J() * 1e-06,
7364 InverseEnergy::from_per_J(1.0_f64).to_per_uJ(), 9
7365 );
7366 assert_approx_equal(
7367 InverseEnergy::from_per_J(1000000000.0_f64).to_per_J(),
7368 InverseEnergy::from_per_nJ(1.0_f64).to_per_J(), 9
7369 );
7370 assert_approx_equal(
7371 InverseEnergy::from_per_J(1.0_f64).to_per_J() * 1e-09,
7372 InverseEnergy::from_per_J(1.0_f64).to_per_nJ(), 9
7373 );
7374 assert_approx_equal(
7375 InverseEnergy::from_per_J(0.001_f64).to_per_J(),
7376 InverseEnergy::from_per_kJ(1.0_f64).to_per_J(), 9
7377 );
7378 assert_approx_equal(
7379 InverseEnergy::from_per_J(1.0_f64).to_per_J() * 1000.0,
7380 InverseEnergy::from_per_J(1.0_f64).to_per_kJ(), 9
7381 );
7382 assert_approx_equal(
7383 InverseEnergy::from_per_J(1e-06_f64).to_per_J(),
7384 InverseEnergy::from_per_MJ(1.0_f64).to_per_J(), 9
7385 );
7386 assert_approx_equal(
7387 InverseEnergy::from_per_J(1.0_f64).to_per_J() * 1000000.0,
7388 InverseEnergy::from_per_J(1.0_f64).to_per_MJ(), 9
7389 );
7390 assert_approx_equal(
7391 InverseEnergy::from_per_J(1e-09_f64).to_per_J(),
7392 InverseEnergy::from_per_GJ(1.0_f64).to_per_J(), 9
7393 );
7394 assert_approx_equal(
7395 InverseEnergy::from_per_J(1.0_f64).to_per_J() * 1000000000.0,
7396 InverseEnergy::from_per_J(1.0_f64).to_per_GJ(), 9
7397 );
7398 assert_approx_equal(
7399 InverseEnergy::from_per_J(0.239005736137667_f64).to_per_J(),
7400 InverseEnergy::from_per_cal(1.0_f64).to_per_J(), 9
7401 );
7402 assert_approx_equal(
7403 InverseEnergy::from_per_J(1.0_f64).to_per_J() * 4.184,
7404 InverseEnergy::from_per_J(1.0_f64).to_per_cal(), 9
7405 );
7406 assert_approx_equal(
7407 InverseEnergy::from_per_J(0.0002390057361376_f64).to_per_J(),
7408 InverseEnergy::from_per_kcal(1.0_f64).to_per_J(), 9
7409 );
7410 assert_approx_equal(
7411 InverseEnergy::from_per_J(1.0_f64).to_per_J() * 4184.0,
7412 InverseEnergy::from_per_J(1.0_f64).to_per_kcal(), 9
7413 );
7414 assert_approx_equal(
7415 InverseEnergy::from_per_J(0.0002777777777777_f64).to_per_J(),
7416 InverseEnergy::from_per_Whr(1.0_f64).to_per_J(), 9
7417 );
7418 assert_approx_equal(
7419 InverseEnergy::from_per_J(1.0_f64).to_per_J() * 3600.0,
7420 InverseEnergy::from_per_J(1.0_f64).to_per_Whr(), 9
7421 );
7422 assert_approx_equal(
7423 InverseEnergy::from_per_J(2.78e-07_f64).to_per_J(),
7424 InverseEnergy::from_per_kWhr(1.0_f64).to_per_J(), 9
7425 );
7426 assert_approx_equal(
7427 InverseEnergy::from_per_J(1.0_f64).to_per_J() * 3600000.0,
7428 InverseEnergy::from_per_J(1.0_f64).to_per_kWhr(), 9
7429 );
7430 assert_approx_equal(
7431 InverseEnergy::from_per_J(6.24e+18_f64).to_per_J(),
7432 InverseEnergy::from_per_eV(1.0_f64).to_per_J(), 9
7433 );
7434 assert_approx_equal(
7435 InverseEnergy::from_per_J(1.0_f64).to_per_J() * 1.6e-19,
7436 InverseEnergy::from_per_J(1.0_f64).to_per_eV(), 9
7437 );
7438 assert_approx_equal(
7439 InverseEnergy::from_per_J(0.0009478672985781_f64).to_per_J(),
7440 InverseEnergy::from_per_BTU(1.0_f64).to_per_J(), 9
7441 );
7442 assert_approx_equal(
7443 InverseEnergy::from_per_J(1.0_f64).to_per_J() * 1055.0,
7444 InverseEnergy::from_per_J(1.0_f64).to_per_BTU(), 9
7445 );
7446 }
7447
7448 #[test]
7449 fn inverse_force_units() {
7450 assert_approx_equal(
7451 InverseForce::from_per_N(0.224337566199999_f64).to_per_N(),
7452 InverseForce::from_per_lb(1.0_f64).to_per_N(), 9
7453 );
7454 assert_approx_equal(
7455 InverseForce::from_per_N(1.0_f64).to_per_N() * 4.45756819483586,
7456 InverseForce::from_per_N(1.0_f64).to_per_lb(), 9
7457 );
7458 assert_approx_equal(
7459 InverseForce::from_per_N(0.101971620999999_f64).to_per_N(),
7460 InverseForce::from_per_kgG(1.0_f64).to_per_N(), 9
7461 );
7462 assert_approx_equal(
7463 InverseForce::from_per_N(1.0_f64).to_per_N() * 9.8066500286389,
7464 InverseForce::from_per_N(1.0_f64).to_per_kgG(), 9
7465 );
7466 assert_approx_equal(
7467 InverseForce::from_per_N(1000.0_f64).to_per_N(),
7468 InverseForce::from_per_mN(1.0_f64).to_per_N(), 9
7469 );
7470 assert_approx_equal(
7471 InverseForce::from_per_N(1.0_f64).to_per_N() * 0.001,
7472 InverseForce::from_per_N(1.0_f64).to_per_mN(), 9
7473 );
7474 assert_approx_equal(
7475 InverseForce::from_per_N(1000000.0_f64).to_per_N(),
7476 InverseForce::from_per_uN(1.0_f64).to_per_N(), 9
7477 );
7478 assert_approx_equal(
7479 InverseForce::from_per_N(1.0_f64).to_per_N() * 1e-06,
7480 InverseForce::from_per_N(1.0_f64).to_per_uN(), 9
7481 );
7482 assert_approx_equal(
7483 InverseForce::from_per_N(1000000000.0_f64).to_per_N(),
7484 InverseForce::from_per_nN(1.0_f64).to_per_N(), 9
7485 );
7486 assert_approx_equal(
7487 InverseForce::from_per_N(1.0_f64).to_per_N() * 1e-09,
7488 InverseForce::from_per_N(1.0_f64).to_per_nN(), 9
7489 );
7490 assert_approx_equal(
7491 InverseForce::from_per_N(0.001_f64).to_per_N(),
7492 InverseForce::from_per_kN(1.0_f64).to_per_N(), 9
7493 );
7494 assert_approx_equal(
7495 InverseForce::from_per_N(1.0_f64).to_per_N() * 1000.0,
7496 InverseForce::from_per_N(1.0_f64).to_per_kN(), 9
7497 );
7498 assert_approx_equal(
7499 InverseForce::from_per_N(1e-06_f64).to_per_N(),
7500 InverseForce::from_per_MN(1.0_f64).to_per_N(), 9
7501 );
7502 assert_approx_equal(
7503 InverseForce::from_per_N(1.0_f64).to_per_N() * 1000000.0,
7504 InverseForce::from_per_N(1.0_f64).to_per_MN(), 9
7505 );
7506 assert_approx_equal(
7507 InverseForce::from_per_N(1e-09_f64).to_per_N(),
7508 InverseForce::from_per_GN(1.0_f64).to_per_N(), 9
7509 );
7510 assert_approx_equal(
7511 InverseForce::from_per_N(1.0_f64).to_per_N() * 1000000000.0,
7512 InverseForce::from_per_N(1.0_f64).to_per_GN(), 9
7513 );
7514 }
7515
7516 #[test]
7517 fn inverse_moment_of_inertia_units() {
7518 assert_approx_equal(
7519 InverseMomentOfInertia::from_per_kgm2(0.1_f64).to_per_kgm2(),
7520 InverseMomentOfInertia::from_per_gcm2(1.0_f64).to_per_kgm2(), 9
7521 );
7522 assert_approx_equal(
7523 InverseMomentOfInertia::from_per_kgm2(1.0_f64).to_per_kgm2() * 10.0,
7524 InverseMomentOfInertia::from_per_kgm2(1.0_f64).to_per_gcm2(), 9
7525 );
7526 assert_approx_equal(
7527 InverseMomentOfInertia::from_per_kgm2(1000.0_f64).to_per_kgm2(),
7528 InverseMomentOfInertia::from_per_gm2(1.0_f64).to_per_kgm2(), 9
7529 );
7530 assert_approx_equal(
7531 InverseMomentOfInertia::from_per_kgm2(1.0_f64).to_per_kgm2() * 0.001,
7532 InverseMomentOfInertia::from_per_kgm2(1.0_f64).to_per_gm2(), 9
7533 );
7534 }
7535
7536 #[test]
7537 fn inverse_momentum_units() {
7538 assert_approx_equal(
7539 InverseMomentum::from_s_per_kgm(100000.0_f64).to_s_per_kgm(),
7540 InverseMomentum::from_s_per_gcm(1.0_f64).to_s_per_kgm(), 9
7541 );
7542 assert_approx_equal(
7543 InverseMomentum::from_s_per_kgm(1.0_f64).to_s_per_kgm() * 1e-05,
7544 InverseMomentum::from_s_per_kgm(1.0_f64).to_s_per_gcm(), 9
7545 );
7546 assert_approx_equal(
7547 InverseMomentum::from_s_per_kgm(100000.0_f64).to_s_per_kgm(),
7548 InverseMomentum::from_seconds_per_gram_centimeter(1.0_f64).to_s_per_kgm(), 9
7549 );
7550 assert_approx_equal(
7551 InverseMomentum::from_s_per_kgm(1.0_f64).to_s_per_kgm() * 1e-05,
7552 InverseMomentum::from_s_per_kgm(1.0_f64).to_seconds_per_gram_centimeter(), 9
7553 );
7554 }
7555
7556 #[test]
7557 fn inverse_power_units() {
7558 assert_approx_equal(
7559 InversePower::from_per_W(1000.0_f64).to_per_W(),
7560 InversePower::from_per_mW(1.0_f64).to_per_W(), 9
7561 );
7562 assert_approx_equal(
7563 InversePower::from_per_W(1.0_f64).to_per_W() * 0.001,
7564 InversePower::from_per_W(1.0_f64).to_per_mW(), 9
7565 );
7566 assert_approx_equal(
7567 InversePower::from_per_W(1000000.0_f64).to_per_W(),
7568 InversePower::from_per_uW(1.0_f64).to_per_W(), 9
7569 );
7570 assert_approx_equal(
7571 InversePower::from_per_W(1.0_f64).to_per_W() * 1e-06,
7572 InversePower::from_per_W(1.0_f64).to_per_uW(), 9
7573 );
7574 assert_approx_equal(
7575 InversePower::from_per_W(1000000000.0_f64).to_per_W(),
7576 InversePower::from_per_nW(1.0_f64).to_per_W(), 9
7577 );
7578 assert_approx_equal(
7579 InversePower::from_per_W(1.0_f64).to_per_W() * 1e-09,
7580 InversePower::from_per_W(1.0_f64).to_per_nW(), 9
7581 );
7582 assert_approx_equal(
7583 InversePower::from_per_W(0.001_f64).to_per_W(),
7584 InversePower::from_per_kW(1.0_f64).to_per_W(), 9
7585 );
7586 assert_approx_equal(
7587 InversePower::from_per_W(1.0_f64).to_per_W() * 1000.0,
7588 InversePower::from_per_W(1.0_f64).to_per_kW(), 9
7589 );
7590 assert_approx_equal(
7591 InversePower::from_per_W(1e-06_f64).to_per_W(),
7592 InversePower::from_per_MW(1.0_f64).to_per_W(), 9
7593 );
7594 assert_approx_equal(
7595 InversePower::from_per_W(1.0_f64).to_per_W() * 1000000.0,
7596 InversePower::from_per_W(1.0_f64).to_per_MW(), 9
7597 );
7598 assert_approx_equal(
7599 InversePower::from_per_W(1e-09_f64).to_per_W(),
7600 InversePower::from_per_GW(1.0_f64).to_per_W(), 9
7601 );
7602 assert_approx_equal(
7603 InversePower::from_per_W(1.0_f64).to_per_W() * 1000000000.0,
7604 InversePower::from_per_W(1.0_f64).to_per_GW(), 9
7605 );
7606 assert_approx_equal(
7607 InversePower::from_per_W(0.0013410218586563_f64).to_per_W(),
7608 InversePower::from_per_horsepower(1.0_f64).to_per_W(), 9
7609 );
7610 assert_approx_equal(
7611 InversePower::from_per_W(1.0_f64).to_per_W() * 745.7,
7612 InversePower::from_per_W(1.0_f64).to_per_horsepower(), 9
7613 );
7614 }
7615
7616 #[test]
7617 fn inverse_pressure_units() {
7618 assert_approx_equal(
7619 InversePressure::from_per_Pa(0.00014503773773_f64).to_per_Pa(),
7620 InversePressure::from_per_psi(1.0_f64).to_per_Pa(), 9
7621 );
7622 assert_approx_equal(
7623 InversePressure::from_per_Pa(1.0_f64).to_per_Pa() * 6894.7572931783,
7624 InversePressure::from_per_Pa(1.0_f64).to_per_psi(), 9
7625 );
7626 assert_approx_equal(
7627 InversePressure::from_per_Pa(1000.0_f64).to_per_Pa(),
7628 InversePressure::from_per_mPa(1.0_f64).to_per_Pa(), 9
7629 );
7630 assert_approx_equal(
7631 InversePressure::from_per_Pa(1.0_f64).to_per_Pa() * 0.001,
7632 InversePressure::from_per_Pa(1.0_f64).to_per_mPa(), 9
7633 );
7634 assert_approx_equal(
7635 InversePressure::from_per_Pa(1000000.0_f64).to_per_Pa(),
7636 InversePressure::from_per_uPa(1.0_f64).to_per_Pa(), 9
7637 );
7638 assert_approx_equal(
7639 InversePressure::from_per_Pa(1.0_f64).to_per_Pa() * 1e-06,
7640 InversePressure::from_per_Pa(1.0_f64).to_per_uPa(), 9
7641 );
7642 assert_approx_equal(
7643 InversePressure::from_per_Pa(1000000000.0_f64).to_per_Pa(),
7644 InversePressure::from_per_nPa(1.0_f64).to_per_Pa(), 9
7645 );
7646 assert_approx_equal(
7647 InversePressure::from_per_Pa(1.0_f64).to_per_Pa() * 1e-09,
7648 InversePressure::from_per_Pa(1.0_f64).to_per_nPa(), 9
7649 );
7650 assert_approx_equal(
7651 InversePressure::from_per_Pa(0.001_f64).to_per_Pa(),
7652 InversePressure::from_per_kPa(1.0_f64).to_per_Pa(), 9
7653 );
7654 assert_approx_equal(
7655 InversePressure::from_per_Pa(1.0_f64).to_per_Pa() * 1000.0,
7656 InversePressure::from_per_Pa(1.0_f64).to_per_kPa(), 9
7657 );
7658 assert_approx_equal(
7659 InversePressure::from_per_Pa(1e-06_f64).to_per_Pa(),
7660 InversePressure::from_per_MPa(1.0_f64).to_per_Pa(), 9
7661 );
7662 assert_approx_equal(
7663 InversePressure::from_per_Pa(1.0_f64).to_per_Pa() * 1000000.0,
7664 InversePressure::from_per_Pa(1.0_f64).to_per_MPa(), 9
7665 );
7666 assert_approx_equal(
7667 InversePressure::from_per_Pa(1e-09_f64).to_per_Pa(),
7668 InversePressure::from_per_GPa(1.0_f64).to_per_Pa(), 9
7669 );
7670 assert_approx_equal(
7671 InversePressure::from_per_Pa(1.0_f64).to_per_Pa() * 1000000000.0,
7672 InversePressure::from_per_Pa(1.0_f64).to_per_GPa(), 9
7673 );
7674 assert_approx_equal(
7675 InversePressure::from_per_Pa(0.01_f64).to_per_Pa(),
7676 InversePressure::from_per_hPa(1.0_f64).to_per_Pa(), 9
7677 );
7678 assert_approx_equal(
7679 InversePressure::from_per_Pa(1.0_f64).to_per_Pa() * 100.0,
7680 InversePressure::from_per_Pa(1.0_f64).to_per_hPa(), 9
7681 );
7682 assert_approx_equal(
7683 InversePressure::from_per_Pa(1e-05_f64).to_per_Pa(),
7684 InversePressure::from_per_bar(1.0_f64).to_per_Pa(), 9
7685 );
7686 assert_approx_equal(
7687 InversePressure::from_per_Pa(1.0_f64).to_per_Pa() * 100000.0,
7688 InversePressure::from_per_Pa(1.0_f64).to_per_bar(), 9
7689 );
7690 assert_approx_equal(
7691 InversePressure::from_per_Pa(0.01_f64).to_per_Pa(),
7692 InversePressure::from_per_mbar(1.0_f64).to_per_Pa(), 9
7693 );
7694 assert_approx_equal(
7695 InversePressure::from_per_Pa(1.0_f64).to_per_Pa() * 100.0,
7696 InversePressure::from_per_Pa(1.0_f64).to_per_mbar(), 9
7697 );
7698 assert_approx_equal(
7699 InversePressure::from_per_Pa(9.87e-06_f64).to_per_Pa(),
7700 InversePressure::from_per_atm(1.0_f64).to_per_Pa(), 9
7701 );
7702 assert_approx_equal(
7703 InversePressure::from_per_Pa(1.0_f64).to_per_Pa() * 101325.0,
7704 InversePressure::from_per_Pa(1.0_f64).to_per_atm(), 9
7705 );
7706 assert_approx_equal(
7707 InversePressure::from_per_Pa(0.007500616827039_f64).to_per_Pa(),
7708 InversePressure::from_per_torr(1.0_f64).to_per_Pa(), 9
7709 );
7710 assert_approx_equal(
7711 InversePressure::from_per_Pa(1.0_f64).to_per_Pa() * 133.3223684211,
7712 InversePressure::from_per_Pa(1.0_f64).to_per_torr(), 9
7713 );
7714 assert_approx_equal(
7715 InversePressure::from_per_Pa(0.007500616827039_f64).to_per_Pa(),
7716 InversePressure::from_per_mmHg(1.0_f64).to_per_Pa(), 9
7717 );
7718 assert_approx_equal(
7719 InversePressure::from_per_Pa(1.0_f64).to_per_Pa() * 133.3223684211,
7720 InversePressure::from_per_Pa(1.0_f64).to_per_mmHg(), 9
7721 );
7722 }
7723
7724 #[test]
7725 fn inverse_torque_units() {
7726 assert_approx_equal(
7727 InverseTorque::from_per_Nm(0.73756214927727_f64).to_per_Nm(),
7728 InverseTorque::from_per_ftlb(1.0_f64).to_per_Nm(), 9
7729 );
7730 assert_approx_equal(
7731 InverseTorque::from_per_Nm(1.0_f64).to_per_Nm() * 1.35581794833139,
7732 InverseTorque::from_per_Nm(1.0_f64).to_per_ftlb(), 9
7733 );
7734 }
7735
7736 #[test]
7737 fn time_per_distance_units() {
7738 assert_approx_equal(
7739 TimePerDistance::from_spm(100.0_f64).to_spm(),
7740 TimePerDistance::from_s_per_cm(1.0_f64).to_spm(), 9
7741 );
7742 assert_approx_equal(
7743 TimePerDistance::from_spm(1.0_f64).to_spm() * 0.01,
7744 TimePerDistance::from_spm(1.0_f64).to_s_per_cm(), 9
7745 );
7746 assert_approx_equal(
7747 TimePerDistance::from_spm(1000.0_f64).to_spm(),
7748 TimePerDistance::from_s_per_mm(1.0_f64).to_spm(), 9
7749 );
7750 assert_approx_equal(
7751 TimePerDistance::from_spm(1.0_f64).to_spm() * 0.001,
7752 TimePerDistance::from_spm(1.0_f64).to_s_per_mm(), 9
7753 );
7754 assert_approx_equal(
7755 TimePerDistance::from_spm(3.6_f64).to_spm(),
7756 TimePerDistance::from_hr_per_km(1.0_f64).to_spm(), 9
7757 );
7758 assert_approx_equal(
7759 TimePerDistance::from_spm(1.0_f64).to_spm() * 0.277777777777778,
7760 TimePerDistance::from_spm(1.0_f64).to_hr_per_km(), 9
7761 );
7762 assert_approx_equal(
7763 TimePerDistance::from_spm(2.2369362920544_f64).to_spm(),
7764 TimePerDistance::from_hr_per_mi(1.0_f64).to_spm(), 9
7765 );
7766 assert_approx_equal(
7767 TimePerDistance::from_spm(1.0_f64).to_spm() * 0.44704,
7768 TimePerDistance::from_spm(1.0_f64).to_hr_per_mi(), 9
7769 );
7770 }
7771
7772 #[test]
7773 fn volume_per_mass_units() {
7774 assert_approx_equal(
7775 VolumePerMass::from_m3_per_kg(0.001_f64).to_m3_per_kg(),
7776 VolumePerMass::from_L_per_kg(1.0_f64).to_m3_per_kg(), 9
7777 );
7778 assert_approx_equal(
7779 VolumePerMass::from_m3_per_kg(1.0_f64).to_m3_per_kg() * 1000.0,
7780 VolumePerMass::from_m3_per_kg(1.0_f64).to_L_per_kg(), 9
7781 );
7782 assert_approx_equal(
7783 VolumePerMass::from_m3_per_kg(0.001_f64).to_m3_per_kg(),
7784 VolumePerMass::from_liters_per_kilogram(1.0_f64).to_m3_per_kg(), 9
7785 );
7786 assert_approx_equal(
7787 VolumePerMass::from_m3_per_kg(1.0_f64).to_m3_per_kg() * 1000.0,
7788 VolumePerMass::from_m3_per_kg(1.0_f64).to_liters_per_kilogram(), 9
7789 );
7790 assert_approx_equal(
7791 VolumePerMass::from_m3_per_kg(0.001_f64).to_m3_per_kg(),
7792 VolumePerMass::from_cc_per_g(1.0_f64).to_m3_per_kg(), 9
7793 );
7794 assert_approx_equal(
7795 VolumePerMass::from_m3_per_kg(1.0_f64).to_m3_per_kg() * 1000.0,
7796 VolumePerMass::from_m3_per_kg(1.0_f64).to_cc_per_g(), 9
7797 );
7798 assert_approx_equal(
7799 VolumePerMass::from_m3_per_kg(0.001_f64).to_m3_per_kg(),
7800 VolumePerMass::from_cubic_centimeters_per_gram(1.0_f64).to_m3_per_kg(), 9
7801 );
7802 assert_approx_equal(
7803 VolumePerMass::from_m3_per_kg(1.0_f64).to_m3_per_kg() * 1000.0,
7804 VolumePerMass::from_m3_per_kg(1.0_f64).to_cubic_centimeters_per_gram(), 9
7805 );
7806 }
7807
7808 #[test]
7809 fn inverse_absorbed_dose_units() {
7810 assert_approx_equal(
7811 InverseAbsorbedDose::from_per_Gy(1000.0_f64).to_per_Gy(),
7812 InverseAbsorbedDose::from_per_mGy(1.0_f64).to_per_Gy(), 9
7813 );
7814 assert_approx_equal(
7815 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_Gy() * 0.001,
7816 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_mGy(), 9
7817 );
7818 assert_approx_equal(
7819 InverseAbsorbedDose::from_per_Gy(1000000.0_f64).to_per_Gy(),
7820 InverseAbsorbedDose::from_per_uGy(1.0_f64).to_per_Gy(), 9
7821 );
7822 assert_approx_equal(
7823 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_Gy() * 1e-06,
7824 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_uGy(), 9
7825 );
7826 assert_approx_equal(
7827 InverseAbsorbedDose::from_per_Gy(1000000000.0_f64).to_per_Gy(),
7828 InverseAbsorbedDose::from_per_nGy(1.0_f64).to_per_Gy(), 9
7829 );
7830 assert_approx_equal(
7831 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_Gy() * 1e-09,
7832 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_nGy(), 9
7833 );
7834 assert_approx_equal(
7835 InverseAbsorbedDose::from_per_Gy(0.001_f64).to_per_Gy(),
7836 InverseAbsorbedDose::from_per_kGy(1.0_f64).to_per_Gy(), 9
7837 );
7838 assert_approx_equal(
7839 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_Gy() * 1000.0,
7840 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_kGy(), 9
7841 );
7842 assert_approx_equal(
7843 InverseAbsorbedDose::from_per_Gy(1e-06_f64).to_per_Gy(),
7844 InverseAbsorbedDose::from_per_MGy(1.0_f64).to_per_Gy(), 9
7845 );
7846 assert_approx_equal(
7847 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_Gy() * 1000000.0,
7848 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_MGy(), 9
7849 );
7850 assert_approx_equal(
7851 InverseAbsorbedDose::from_per_Gy(1e-09_f64).to_per_Gy(),
7852 InverseAbsorbedDose::from_per_GGy(1.0_f64).to_per_Gy(), 9
7853 );
7854 assert_approx_equal(
7855 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_Gy() * 1000000000.0,
7856 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_GGy(), 9
7857 );
7858 assert_approx_equal(
7859 InverseAbsorbedDose::from_per_Gy(100.0_f64).to_per_Gy(),
7860 InverseAbsorbedDose::from_per_rad(1.0_f64).to_per_Gy(), 9
7861 );
7862 assert_approx_equal(
7863 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_Gy() * 0.01,
7864 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_rad(), 9
7865 );
7866 assert_approx_equal(
7867 InverseAbsorbedDose::from_per_Gy(0.1_f64).to_per_Gy(),
7868 InverseAbsorbedDose::from_per_krad(1.0_f64).to_per_Gy(), 9
7869 );
7870 assert_approx_equal(
7871 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_Gy() * 10.0,
7872 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_krad(), 9
7873 );
7874 assert_approx_equal(
7875 InverseAbsorbedDose::from_per_Gy(100000.0_f64).to_per_Gy(),
7876 InverseAbsorbedDose::from_per_mrad(1.0_f64).to_per_Gy(), 9
7877 );
7878 assert_approx_equal(
7879 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_Gy() * 1e-05,
7880 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_mrad(), 9
7881 );
7882 assert_approx_equal(
7883 InverseAbsorbedDose::from_per_Gy(100000000.0_f64).to_per_Gy(),
7884 InverseAbsorbedDose::from_per_urad(1.0_f64).to_per_Gy(), 9
7885 );
7886 assert_approx_equal(
7887 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_Gy() * 1e-08,
7888 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_urad(), 9
7889 );
7890 assert_approx_equal(
7891 InverseAbsorbedDose::from_per_Gy(10000.0_f64).to_per_Gy(),
7892 InverseAbsorbedDose::from_per_erg(1.0_f64).to_per_Gy(), 9
7893 );
7894 assert_approx_equal(
7895 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_Gy() * 0.0001,
7896 InverseAbsorbedDose::from_per_Gy(1.0_f64).to_per_erg(), 9
7897 );
7898 }
7899
7900 #[test]
7901 fn inverse_dose_equivalent_units() {
7902 assert_approx_equal(
7903 InverseDoseEquivalent::from_per_Sv(1000.0_f64).to_per_Sv(),
7904 InverseDoseEquivalent::from_per_mSv(1.0_f64).to_per_Sv(), 9
7905 );
7906 assert_approx_equal(
7907 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_Sv() * 0.001,
7908 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_mSv(), 9
7909 );
7910 assert_approx_equal(
7911 InverseDoseEquivalent::from_per_Sv(1000000.0_f64).to_per_Sv(),
7912 InverseDoseEquivalent::from_per_uSv(1.0_f64).to_per_Sv(), 9
7913 );
7914 assert_approx_equal(
7915 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_Sv() * 1e-06,
7916 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_uSv(), 9
7917 );
7918 assert_approx_equal(
7919 InverseDoseEquivalent::from_per_Sv(1000000000.0_f64).to_per_Sv(),
7920 InverseDoseEquivalent::from_per_nSv(1.0_f64).to_per_Sv(), 9
7921 );
7922 assert_approx_equal(
7923 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_Sv() * 1e-09,
7924 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_nSv(), 9
7925 );
7926 assert_approx_equal(
7927 InverseDoseEquivalent::from_per_Sv(0.001_f64).to_per_Sv(),
7928 InverseDoseEquivalent::from_per_kSv(1.0_f64).to_per_Sv(), 9
7929 );
7930 assert_approx_equal(
7931 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_Sv() * 1000.0,
7932 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_kSv(), 9
7933 );
7934 assert_approx_equal(
7935 InverseDoseEquivalent::from_per_Sv(1e-06_f64).to_per_Sv(),
7936 InverseDoseEquivalent::from_per_MSv(1.0_f64).to_per_Sv(), 9
7937 );
7938 assert_approx_equal(
7939 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_Sv() * 1000000.0,
7940 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_MSv(), 9
7941 );
7942 assert_approx_equal(
7943 InverseDoseEquivalent::from_per_Sv(1e-09_f64).to_per_Sv(),
7944 InverseDoseEquivalent::from_per_GSv(1.0_f64).to_per_Sv(), 9
7945 );
7946 assert_approx_equal(
7947 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_Sv() * 1000000000.0,
7948 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_GSv(), 9
7949 );
7950 assert_approx_equal(
7951 InverseDoseEquivalent::from_per_Sv(100.0_f64).to_per_Sv(),
7952 InverseDoseEquivalent::from_per_rem(1.0_f64).to_per_Sv(), 9
7953 );
7954 assert_approx_equal(
7955 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_Sv() * 0.01,
7956 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_rem(), 9
7957 );
7958 assert_approx_equal(
7959 InverseDoseEquivalent::from_per_Sv(100000.0_f64).to_per_Sv(),
7960 InverseDoseEquivalent::from_per_mrem(1.0_f64).to_per_Sv(), 9
7961 );
7962 assert_approx_equal(
7963 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_Sv() * 1e-05,
7964 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_mrem(), 9
7965 );
7966 assert_approx_equal(
7967 InverseDoseEquivalent::from_per_Sv(0.1_f64).to_per_Sv(),
7968 InverseDoseEquivalent::from_per_krem(1.0_f64).to_per_Sv(), 9
7969 );
7970 assert_approx_equal(
7971 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_Sv() * 10.0,
7972 InverseDoseEquivalent::from_per_Sv(1.0_f64).to_per_krem(), 9
7973 );
7974 }
7975}