macro_rules! gen_tests_for_float {
($float_name: ident) => {
mod $float_name {
use rand::Rng;
use crate::example_system::dimensions::Length;
use crate::example_system::units;
use crate::make_annotated_unit_constructor;
make_annotated_unit_constructor!(meters, Length<$float_name>, $float_name);
make_annotated_unit_constructor!(kilometers, Length<$float_name>, $float_name);
#[test]
fn test_random_quantity_generation() {
let mut rng = rand::thread_rng();
for _ in 0..100 {
let x = rng.gen_range(meters(0.0)..kilometers(1.0));
assert!(meters(0.0) <= x);
assert!(x < meters(1000.0));
}
}
}
};
}
#[cfg(feature = "f32")]
gen_tests_for_float!(f32);
#[cfg(feature = "f64")]
gen_tests_for_float!(f64);