uom/si/
magnetic_flux_density.rs1quantity! {
4 quantity: MagneticFluxDensity; "magnetic flux density";
6 dimension: ISQ<
8 Z0, P1, N2, N1, Z0, Z0, Z0>; units {
16 @yottatesla: prefix!(yotta); "YT", "yottatesla", "yottateslas";
17 @zettatesla: prefix!(zetta); "ZT", "zettatesla", "zettateslas";
18 @exatesla: prefix!(exa); "ET", "exatesla", "exateslas";
19 @petatesla: prefix!(peta); "PT", "petatesla", "petateslas";
20 @teratesla: prefix!(tera); "TT", "teratesla", "terateslas";
21 @gigatesla: prefix!(giga); "GT", "gigatesla", "gigateslas";
22 @megatesla: prefix!(mega); "MT", "megatesla", "megateslas";
23 @kilotesla: prefix!(kilo); "kT", "kilotesla", "kiloteslas";
24 @hectotesla: prefix!(hecto); "hT", "hectotesla", "hectoteslas";
25 @decatesla: prefix!(deca); "daT", "decatesla", "decateslas";
26 @tesla: prefix!(none); "T", "tesla", "teslas";
28 @decitesla: prefix!(deci); "dT", "decitesla", "deciteslas";
29 @centitesla: prefix!(centi); "cT", "centitesla", "centiteslas";
30 @millitesla: prefix!(milli); "mT", "millitesla", "milliteslas";
31 @microtesla: prefix!(micro); "µT", "microtesla", "microteslas";
32 @nanotesla: prefix!(nano); "nT", "nanotesla", "nanoteslas";
33 @picotesla: prefix!(pico); "pT", "picotesla", "picoteslas";
34 @femtotesla: prefix!(femto); "fT", "femtotesla", "femtoteslas";
35 @attotesla: prefix!(atto); "aT", "attotesla", "attoteslas";
36 @zeptotesla: prefix!(zepto); "zT", "zeptotesla", "zeptoteslas";
37 @yoctotesla: prefix!(yocto); "yT", "yoctotesla", "yoctoteslas";
38
39 @gamma: 1.0_E-9; "γ", "gamma", "gammas";
40 @gauss: 1.0_E-4; "G", "gauss", "gauss";
41 }
42}
43
44#[cfg(test)]
45mod tests {
46 storage_types! {
47 use crate::si::area as a;
48 use crate::si::magnetic_flux as f;
49 use crate::si::magnetic_flux_density as b;
50 use crate::si::quantities::*;
51 use crate::tests::Test;
52 use crate::num::One;
53
54 #[test]
55 fn check_dimension() {
56 let _: MagneticFluxDensity<V> = MagneticFlux::new::<f::weber>(V::one())
57 / Area::new::<a::square_meter>(V::one());
58 }
59
60 #[test]
61 fn check_units() {
62 test::<f::yottaweber, b::yottatesla>();
63 test::<f::zettaweber, b::zettatesla>();
64 test::<f::exaweber, b::exatesla>();
65 test::<f::petaweber, b::petatesla>();
66 test::<f::teraweber, b::teratesla>();
67 test::<f::gigaweber, b::gigatesla>();
68 test::<f::megaweber, b::megatesla>();
69 test::<f::kiloweber, b::kilotesla>();
70 test::<f::hectoweber, b::hectotesla>();
71 test::<f::decaweber, b::decatesla>();
72 test::<f::weber, b::tesla>();
73 test::<f::deciweber, b::decitesla>();
74 test::<f::centiweber, b::centitesla>();
75 test::<f::milliweber, b::millitesla>();
76 test::<f::microweber, b::microtesla>();
77 test::<f::nanoweber, b::nanotesla>();
78 test::<f::picoweber, b::picotesla>();
79 test::<f::femtoweber, b::femtotesla>();
80 test::<f::attoweber, b::attotesla>();
81 test::<f::zeptoweber, b::zeptotesla>();
82 test::<f::yoctoweber, b::yoctotesla>();
83
84 test::<f::nanoweber, b::gamma>();
85
86 fn test<F: f::Conversion<V>, B: b::Conversion<V>>() {
87 Test::assert_approx_eq(&MagneticFluxDensity::new::<B>(V::one()),
88 &(MagneticFlux::new::<F>(V::one())
89 / Area::new::<a::square_meter>(V::one())));
90 }
91 }
92 }
93}