simple_si_units/
lib.rs

1#![no_std]
2#![allow(non_snake_case)]
3#![warn(missing_docs)]
4#![ doc = include_str!("../README.md")]
5
6/// This derive macro automatically 
7/// derives all of the relevant mathematical operators for the derived struct,
8/// so long as that struct contains only a single named field. 
9/// 
10/// For example:
11/// 
12/// ```rust
13/// use simple_si_units::{UnitStruct, NumLike};
14/// 
15/// #[derive(UnitStruct, Debug, Clone)]
16/// struct HyperVelocity<T: NumLike>{
17///   square_meters_per_second: T
18/// }
19/// 
20/// fn weighted_hypervel_sum<T: NumLike>(a: HyperVelocity<T>, b: HyperVelocity<T>, weight: f64) -> HyperVelocity<T>
21///   where T:NumLike + From<f64>
22/// {
23///   return weight*a + (1.-weight)*b;
24/// }
25/// ```
26pub use simple_si_units_macros::UnitStruct;
27/// The `NumLike` trait is just a shorthand definition for any "number-like" 
28/// type in Rust. "Number-like" means that a type implements the traits for 
29/// standard arithmatic (Add, Sub, Mul, Div, AddAssign, SubAssign, MulAssign, 
30/// DivAssign, and Neg), plus Clone, Debug, and Display. Most number types also
31/// implement the Copy marker trait, but that is not required (for example, an 
32/// arbitrary-precision number type must dynamically allocate memory and thus 
33/// cannot implement Copy).
34/// 
35/// This trait is not meant to be implemented, just for making generic type 
36/// templates more ergonomic. E.g.
37/// ```rust
38/// use simple_si_units::NumLike;
39/// 
40/// fn delta_squared<T>(a: T, b: T) -> T where T: NumLike {
41///   let delta = b - a;
42///   return delta.clone() * delta;
43/// }
44/// ```
45pub use simple_si_units_core::NumLike;
46// NOTE: test with: RUST_BACKTRACE=full cargo clean && cargo test --all-features
47
48// optional supports
49#[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; // import std lib only in test mode
70
71/// Unit tests
72#[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	/// utility function for asserting equality of decimal values with approximations
82	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	/// Unit test
97	#[test]
98	fn add_subtract_test() {
99		// Note: math operators are implemented by the proc macro, so all units behave identically
100		// therefore only need to test one of them to ensure all are compliant
101		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	/// Unit test
110	#[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	/// Unit test
120	#[test]
121	fn op_assign_test() {
122		// +=, -=, *=, /=
123		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		// let x6: X = b.clone() * &(a.clone());
155		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	///// Place generated unit tests below this comment /////
313
314	#[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}