From 109c33ed0acb9168ec11ef1e3b72feaf56c300fc Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Sat, 8 Apr 2017 10:18:19 -0500 Subject: [PATCH] test out of range condition using f64 to avoid imprecision due to rounding to f32 --- src/float/conv.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/float/conv.rs b/src/float/conv.rs index 75a392e..2781ff5 100755 --- a/src/float/conv.rs +++ b/src/float/conv.rs @@ -200,16 +200,16 @@ mod tests { fn __fixsfsi(f: extern "C" fn(f32) -> i32, a: F32) -> Option { - if a.0 > (i32::max_value() as f32) || - a.0 < (i32::min_value() as f32) || a.0.is_nan() { + if (a.0 as f64) > (i32::max_value() as f64) || + (a.0 as f64) < (i32::min_value() as f64) || a.0.is_nan() { None } else { Some(I32(f(a.0))) } } fn __fixsfdi(f: extern "C" fn(f32) -> i64, a: F32) -> Option { - if a.0 > (i64::max_value() as f32) || - a.0 < (i64::min_value() as f32) || a.0.is_nan() { + if (a.0 as f64) > (i64::max_value() as f64) || + (a.0 as f64) < (i64::min_value() as f64) || a.0.is_nan() { None } else { Some(I64(f(a.0))) } } @@ -233,16 +233,16 @@ mod tests { fn __fixunssfsi(f: extern "C" fn(f32) -> u32, a: F32) -> Option { - if a.0 > (u32::max_value() as f32) || - a.0 < (u32::min_value() as f32) || a.0.is_nan() { + if (a.0 as f64) > (u32::max_value() as f64) || + (a.0 as f64) < (u32::min_value() as f64) || a.0.is_nan() { None } else { Some(U32(f(a.0))) } } fn __fixunssfdi(f: extern "C" fn(f32) -> u64, a: F32) -> Option { - if a.0 > (u64::max_value() as f32) || - a.0 < (u64::min_value() as f32) || a.0.is_nan() { + if (a.0 as f64) > (u64::max_value() as f64) || + (a.0 as f64) < (u64::min_value() as f64) || a.0.is_nan() { None } else { Some(U64(f(a.0))) } }