File tree Expand file tree Collapse file tree 5 files changed +21
-56
lines changed
library/coretests/tests/floats Expand file tree Collapse file tree 5 files changed +21
-56
lines changed Original file line number Diff line number Diff line change @@ -55,20 +55,6 @@ fn test_num_f128() {
55
55
// FIXME(f16_f128,miri): many of these have to be disabled since miri does not yet support
56
56
// the intrinsics.
57
57
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
-
72
58
#[ test]
73
59
fn test_infinity ( ) {
74
60
let inf: f128 = f128:: INFINITY ;
Original file line number Diff line number Diff line change @@ -51,20 +51,6 @@ fn test_num_f16() {
51
51
// FIXME(f16_f128,miri): many of these have to be disabled since miri does not yet support
52
52
// the intrinsics.
53
53
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
-
68
54
#[ test]
69
55
fn test_infinity ( ) {
70
56
let inf: f16 = f16:: INFINITY ;
Original file line number Diff line number Diff line change @@ -35,20 +35,6 @@ fn test_num_f32() {
35
35
super :: test_num ( 10f32 , 2f32 ) ;
36
36
}
37
37
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
-
52
38
#[ test]
53
39
fn test_infinity ( ) {
54
40
let inf: f32 = f32:: INFINITY ;
Original file line number Diff line number Diff line change @@ -30,20 +30,6 @@ fn test_num_f64() {
30
30
super :: test_num ( 10f64 , 2f64 ) ;
31
31
}
32
32
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
-
47
33
#[ test]
48
34
fn test_infinity ( ) {
49
35
let inf: f64 = f64:: INFINITY ;
Original file line number Diff line number Diff line change @@ -695,3 +695,24 @@ float_test! {
695
695
assert!( Float :: NEG_INFINITY . fract( ) . is_nan( ) ) ;
696
696
}
697
697
}
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
+ }
You can’t perform that action at this time.
0 commit comments