Remove float-cmp

use euclids approximation instead
master
Roman Kretschmer 6 years ago
parent 52da8d9637
commit e8338e2708
Signed by: gnxlxnxx
GPG Key ID: E4EAB482427FA3A0

@ -19,4 +19,3 @@ euclid = "0.20.11"
thiserror = "1.0" thiserror = "1.0"
[dev-dependencies] [dev-dependencies]
float-cmp = "0.8.0"

@ -1,38 +1,34 @@
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use dubins_path::*; use dubins_path::*;
use float_cmp::approx_eq; use euclid::approxeq::ApproxEq;
fn circle_in_error_margin( fn circle_in_error_margin(
result: CircleVector, result: CircleVector,
expected_result: CircleVector, expected_result: CircleVector,
) -> Result<(), ()> { ) -> Result<(), ()> {
assert!(approx_eq!(f64, result.center.x, expected_result.center.x)); if !ApproxEq::approx_eq(&result.center, &expected_result.center)
assert!(approx_eq!(f64, result.center.x, expected_result.center.x)); || !ApproxEq::approx_eq(&result.radius, &expected_result.radius)
assert!(approx_eq!(f64, result.center.y, expected_result.center.y)); || !(ApproxEq::approx_eq(&result.angle, &expected_result.angle)
assert!(approx_eq!(f64, result.center.y, expected_result.center.y)); || ApproxEq::approx_eq(&result.angle.signed(), &expected_result.angle.signed()))
assert!(approx_eq!(f64, result.radius, expected_result.radius)); {
assert!(approx_eq!(f64, result.radius, expected_result.radius)); Err(())
assert!(approx_eq!(f64, result.angle.radians, expected_result.angle.radians) || } else {
approx_eq!(f64, result.angle.signed().radians, expected_result.angle.signed().radians));
assert!(approx_eq!(f64, result.angle.radians, expected_result.angle.radians) ||
approx_eq!(f64, result.angle.signed().radians, expected_result.angle.signed().radians));
Ok(()) Ok(())
} }
}
fn vector_in_error_margin(result: Vector, expected_result: Vector) -> Result<(), ()> { fn vector_in_error_margin(result: Vector, expected_result: Vector) -> Result<(), ()> {
assert!(approx_eq!(f64, result.origin.x, expected_result.origin.x)); if !ApproxEq::approx_eq(&result.origin, &expected_result.origin)
assert!(approx_eq!(f64, result.origin.x, expected_result.origin.x)); || !ApproxEq::approx_eq(&result.magnitude, &expected_result.magnitude)
assert!(approx_eq!(f64, result.origin.y, expected_result.origin.y)); || !(ApproxEq::approx_eq(&result.angle, &expected_result.angle)
assert!(approx_eq!(f64, result.origin.y, expected_result.origin.y)); || ApproxEq::approx_eq(&result.angle.signed(), &expected_result.angle.signed()))
assert!(approx_eq!(f64, result.angle.radians, expected_result.angle.radians) || {
approx_eq!(f64, result.angle.signed().radians, expected_result.angle.signed().radians)); Err(())
assert!(approx_eq!(f64, result.angle.radians, expected_result.angle.radians) || } else {
approx_eq!(f64, result.angle.signed().radians, expected_result.angle.signed().radians));
assert!(approx_eq!(f64, result.magnitude, expected_result.magnitude));
assert!(approx_eq!(f64, result.magnitude, expected_result.magnitude));
Ok(()) Ok(())
} }
}
#[test] #[test]
#[should_panic] #[should_panic]

Loading…
Cancel
Save