Skip to content

Commit 109c33e

Browse files
author
Jorge Aparicio
committed
test out of range condition using f64
to avoid imprecision due to rounding to f32
1 parent 4c556dc commit 109c33e

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/float/conv.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -200,16 +200,16 @@ mod tests {
200200
fn __fixsfsi(f: extern "C" fn(f32) -> i32,
201201
a: F32)
202202
-> Option<I32> {
203-
if a.0 > (i32::max_value() as f32) ||
204-
a.0 < (i32::min_value() as f32) || a.0.is_nan() {
203+
if (a.0 as f64) > (i32::max_value() as f64) ||
204+
(a.0 as f64) < (i32::min_value() as f64) || a.0.is_nan() {
205205
None
206206
} else { Some(I32(f(a.0))) }
207207
}
208208
fn __fixsfdi(f: extern "C" fn(f32) -> i64,
209209
a: F32)
210210
-> Option<I64> {
211-
if a.0 > (i64::max_value() as f32) ||
212-
a.0 < (i64::min_value() as f32) || a.0.is_nan() {
211+
if (a.0 as f64) > (i64::max_value() as f64) ||
212+
(a.0 as f64) < (i64::min_value() as f64) || a.0.is_nan() {
213213
None
214214
} else { Some(I64(f(a.0))) }
215215
}
@@ -233,16 +233,16 @@ mod tests {
233233
fn __fixunssfsi(f: extern "C" fn(f32) -> u32,
234234
a: F32)
235235
-> Option<U32> {
236-
if a.0 > (u32::max_value() as f32) ||
237-
a.0 < (u32::min_value() as f32) || a.0.is_nan() {
236+
if (a.0 as f64) > (u32::max_value() as f64) ||
237+
(a.0 as f64) < (u32::min_value() as f64) || a.0.is_nan() {
238238
None
239239
} else { Some(U32(f(a.0))) }
240240
}
241241
fn __fixunssfdi(f: extern "C" fn(f32) -> u64,
242242
a: F32)
243243
-> Option<U64> {
244-
if a.0 > (u64::max_value() as f32) ||
245-
a.0 < (u64::min_value() as f32) || a.0.is_nan() {
244+
if (a.0 as f64) > (u64::max_value() as f64) ||
245+
(a.0 as f64) < (u64::min_value() as f64) || a.0.is_nan() {
246246
None
247247
} else { Some(U64(f(a.0))) }
248248
}

0 commit comments

Comments
 (0)