@@ -250,6 +250,28 @@ mod f16;
250
250
mod f32;
251
251
mod f64;
252
252
253
+ float_test ! {
254
+ name: nan,
255
+ attrs: {
256
+ const : #[ cfg( false ) ] ,
257
+ f16: #[ cfg( any( miri, target_has_reliable_f16) ) ] ,
258
+ f128: #[ cfg( any( miri, target_has_reliable_f128) ) ] ,
259
+ } ,
260
+ test<Float > {
261
+ use std:: num:: FpCategory as Fp ;
262
+ let nan: Float = Float :: NAN ;
263
+ assert!( nan. is_nan( ) ) ;
264
+ assert!( !nan. is_infinite( ) ) ;
265
+ assert!( !nan. is_finite( ) ) ;
266
+ assert!( !nan. is_normal( ) ) ;
267
+ assert!( nan. is_sign_positive( ) ) ;
268
+ assert!( !nan. is_sign_negative( ) ) ;
269
+ assert!( matches!( nan. classify( ) , Fp :: Nan ) ) ;
270
+ // Ensure the quiet bit is set.
271
+ assert!( nan. to_bits( ) & ( 1 << ( Float :: MANTISSA_DIGITS - 2 ) ) != 0 ) ;
272
+ }
273
+ }
274
+
253
275
float_test ! {
254
276
name: min,
255
277
attrs: {
@@ -695,24 +717,3 @@ float_test! {
695
717
assert!( Float :: NEG_INFINITY . fract( ) . is_nan( ) ) ;
696
718
}
697
719
}
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