use crate::crate_utils::define_source;
define_source! {
CircularCurrent
field_fn: circular_B
args: {
diameter: T = T::one();
validate diameter > T::zero();
error "Diameter must be positive.",
current: T = T::one(),
}
arg_display: "d={}, I={}";
arg_fmt: [format_float, format_float]
docs: {
new: {
}
}
}
#[cfg(all(test, feature = "std"))]
crate::testing_util::generate_tests! {
CircularCurrent
filename: circularcurrent
params: { diameter: 1.0, current: 1.0 }
rtols: {
static: 2e-10,
static_small: 2e-10,
translate: 2e-10,
rotate: 2e-10,
}
}
#[cfg(test)]
mod tests {
use crate::currents::CircularCurrent;
use nalgebra::UnitQuaternion;
#[test]
#[should_panic]
fn test_input_validation() {
let _ = CircularCurrent::new([0.0; 3], UnitQuaternion::identity(), -1.0, 1.0);
}
}