Skip to content

Commit 16a9548

Browse files
committed
Refactor nan tests
1 parent 607fbd8 commit 16a9548

File tree

5 files changed

+21
-56
lines changed

5 files changed

+21
-56
lines changed

library/coretests/tests/floats/f128.rs

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,20 +55,6 @@ fn test_num_f128() {
5555
// FIXME(f16_f128,miri): many of these have to be disabled since miri does not yet support
5656
// the intrinsics.
5757

58-
#[test]
59-
fn test_nan() {
60-
let nan: f128 = f128::NAN;
61-
assert!(nan.is_nan());
62-
assert!(!nan.is_infinite());
63-
assert!(!nan.is_finite());
64-
assert!(nan.is_sign_positive());
65-
assert!(!nan.is_sign_negative());
66-
assert!(!nan.is_normal());
67-
assert_eq!(Fp::Nan, nan.classify());
68-
// Ensure the quiet bit is set.
69-
assert!(nan.to_bits() & (1 << (f128::MANTISSA_DIGITS - 2)) != 0);
70-
}
71-
7258
#[test]
7359
fn test_infinity() {
7460
let inf: f128 = f128::INFINITY;

library/coretests/tests/floats/f16.rs

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -51,20 +51,6 @@ fn test_num_f16() {
5151
// FIXME(f16_f128,miri): many of these have to be disabled since miri does not yet support
5252
// the intrinsics.
5353

54-
#[test]
55-
fn test_nan() {
56-
let nan: f16 = f16::NAN;
57-
assert!(nan.is_nan());
58-
assert!(!nan.is_infinite());
59-
assert!(!nan.is_finite());
60-
assert!(nan.is_sign_positive());
61-
assert!(!nan.is_sign_negative());
62-
assert!(!nan.is_normal());
63-
assert_eq!(Fp::Nan, nan.classify());
64-
// Ensure the quiet bit is set.
65-
assert!(nan.to_bits() & (1 << (f16::MANTISSA_DIGITS - 2)) != 0);
66-
}
67-
6854
#[test]
6955
fn test_infinity() {
7056
let inf: f16 = f16::INFINITY;

library/coretests/tests/floats/f32.rs

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,6 @@ fn test_num_f32() {
3535
super::test_num(10f32, 2f32);
3636
}
3737

38-
#[test]
39-
fn test_nan() {
40-
let nan: f32 = f32::NAN;
41-
assert!(nan.is_nan());
42-
assert!(!nan.is_infinite());
43-
assert!(!nan.is_finite());
44-
assert!(!nan.is_normal());
45-
assert!(nan.is_sign_positive());
46-
assert!(!nan.is_sign_negative());
47-
assert_eq!(Fp::Nan, nan.classify());
48-
// Ensure the quiet bit is set.
49-
assert!(nan.to_bits() & (1 << (f32::MANTISSA_DIGITS - 2)) != 0);
50-
}
51-
5238
#[test]
5339
fn test_infinity() {
5440
let inf: f32 = f32::INFINITY;

library/coretests/tests/floats/f64.rs

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,6 @@ fn test_num_f64() {
3030
super::test_num(10f64, 2f64);
3131
}
3232

33-
#[test]
34-
fn test_nan() {
35-
let nan: f64 = f64::NAN;
36-
assert!(nan.is_nan());
37-
assert!(!nan.is_infinite());
38-
assert!(!nan.is_finite());
39-
assert!(!nan.is_normal());
40-
assert!(nan.is_sign_positive());
41-
assert!(!nan.is_sign_negative());
42-
assert_eq!(Fp::Nan, nan.classify());
43-
// Ensure the quiet bit is set.
44-
assert!(nan.to_bits() & (1 << (f64::MANTISSA_DIGITS - 2)) != 0);
45-
}
46-
4733
#[test]
4834
fn test_infinity() {
4935
let inf: f64 = f64::INFINITY;

library/coretests/tests/floats/mod.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -695,3 +695,24 @@ float_test! {
695695
assert!(Float::NEG_INFINITY.fract().is_nan());
696696
}
697697
}
698+
699+
float_test! {
700+
name: nan,
701+
attrs: {
702+
f16: #[cfg(any(miri, target_has_reliable_f16_math))],
703+
f128: #[cfg(any(miri, target_has_reliable_f128_math))],
704+
},
705+
test<Float> {
706+
use std::num::FpCategory as Fp;
707+
let nan: Float = Float::NAN;
708+
assert!(nan.is_nan());
709+
assert!(!nan.is_infinite());
710+
assert!(!nan.is_finite());
711+
assert!(!nan.is_normal());
712+
assert!(nan.is_sign_positive());
713+
assert!(!nan.is_sign_negative());
714+
assert!(matches!(nan.classify(), Fp::Nan));
715+
// Ensure the quiet bit is set.
716+
assert!(nan.to_bits() & (1 << (Float::MANTISSA_DIGITS - 2)) != 0);
717+
}
718+
}

0 commit comments

Comments
 (0)