2014-11-23 21:01:12 +08:00
|
|
|
//! Assertion macro tests
|
|
|
|
|
2015-01-08 04:11:09 +08:00
|
|
|
#[macro_use]
|
2014-11-23 21:01:12 +08:00
|
|
|
extern crate nalgebra;
|
|
|
|
|
2016-04-17 23:26:58 +08:00
|
|
|
use nalgebra::{ApproxEq, Vector2};
|
2014-11-23 21:01:12 +08:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn assert_approx_eq_f64() {
|
|
|
|
let a = 1.0f64;
|
|
|
|
let b = 1.0f64 + 1.0e-12f64;
|
|
|
|
assert_approx_eq!(a, b);
|
2015-01-26 02:51:07 +08:00
|
|
|
assert_approx_eq!(&a, &b);
|
2014-11-23 21:01:12 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
2015-03-23 21:30:31 +08:00
|
|
|
#[should_panic]
|
2014-11-23 21:01:12 +08:00
|
|
|
fn assert_approx_eq_vec2_f32_fail() {
|
2016-04-17 23:26:58 +08:00
|
|
|
let a = Vector2::new(1.0f32, 0.0);
|
|
|
|
let b = Vector2::new(1.1f32, 0.1);
|
2014-11-23 21:01:12 +08:00
|
|
|
assert_approx_eq!(a, b);
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn assert_approx_eq_eps_f32() {
|
|
|
|
assert_approx_eq_eps!(1.0f32, 1.1, 0.2);
|
2015-01-26 02:51:07 +08:00
|
|
|
assert_approx_eq_eps!(&mut 1.0f32, &mut 1.1, 0.2);
|
2014-11-23 21:01:12 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
2015-03-23 21:30:31 +08:00
|
|
|
#[should_panic]
|
2014-11-23 21:01:12 +08:00
|
|
|
fn assert_approx_eq_eps_f64_fail() {
|
|
|
|
assert_approx_eq_eps!(1.0f64, 1.1, 0.05);
|
|
|
|
}
|
2015-01-01 05:41:15 +08:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn assert_approx_eq_ulps_f32() {
|
|
|
|
let x = 1000000_f32;
|
|
|
|
let y = 1000000.1_f32;
|
|
|
|
assert!(x != y);
|
|
|
|
assert_approx_eq_ulps!(x, y, 3);
|
2015-01-26 02:51:07 +08:00
|
|
|
assert_approx_eq_ulps!(&x, &y, 3);
|
2015-01-01 05:41:15 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
2015-03-23 21:30:31 +08:00
|
|
|
#[should_panic]
|
2015-01-01 05:41:15 +08:00
|
|
|
fn assert_approx_eq_ulps_f32_fail() {
|
|
|
|
let x = 1000000_f32;
|
|
|
|
let y = 1000000.1_f32;
|
|
|
|
assert_approx_eq_ulps!(x, y, 2);
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn assert_approx_eq_ulps_f64() {
|
|
|
|
let x = 1000000_f64;
|
|
|
|
let y = 1000000.0000000003_f64;
|
|
|
|
assert!(x != y);
|
|
|
|
assert_approx_eq_ulps!(x, y, 4);
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
2015-03-23 21:30:31 +08:00
|
|
|
#[should_panic]
|
2015-01-01 05:41:15 +08:00
|
|
|
fn assert_approx_eq_ulps_f64_fail() {
|
|
|
|
let x = 1000000_f64;
|
|
|
|
let y = 1000000.0000000003_f64;
|
|
|
|
assert!(x != y);
|
|
|
|
assert_approx_eq_ulps!(x, y, 3);
|
|
|
|
}
|