@@ -17,7 +17,7 @@ fn main() {
17
17
let y: f32 = unsafe { std:: mem:: transmute ( x) } ;
18
18
assert_eq ! ( y, 42.0_f32 ) ;
19
19
20
- // f32 casts
20
+ // f32-to-int casts
21
21
assert_eq ! ( 5.0f32 as u32 , 5 ) ;
22
22
assert_eq ! ( -5.0f32 as u32 , 0 ) ;
23
23
assert_eq ! ( 5.0f32 as i32 , 5 ) ;
@@ -36,7 +36,7 @@ fn main() {
36
36
assert_eq ! ( ( u32 :: MAX -127 ) as f32 as u32 , u32 :: MAX ) ; // rounding loss
37
37
assert_eq ! ( ( u32 :: MAX -128 ) as f32 as u32 , u32 :: MAX -255 ) ; // rounding loss
38
38
39
- // f64 casts
39
+ // f64-to-int casts
40
40
assert_eq ! ( 5.0f64 as u64 , 5 ) ;
41
41
assert_eq ! ( -5.0f64 as u64 , 0 ) ;
42
42
assert_eq ! ( 5.0f64 as i64 , 5 ) ;
@@ -55,6 +55,14 @@ fn main() {
55
55
assert_eq ! ( ( u64 :: MAX -1023 ) as f64 as u64 , u64 :: MAX ) ; // rounding loss
56
56
assert_eq ! ( ( u64 :: MAX -1024 ) as f64 as u64 , u64 :: MAX -2047 ) ; // rounding loss
57
57
58
+ // f32 <-> f64 casts
59
+ assert_eq ! ( 5.0f64 as f32 , 5.0f32 ) ;
60
+ assert_eq ! ( 5.0f32 as f64 , 5.0f64 ) ;
61
+ assert_eq ! ( std:: f64 :: MAX as f32 , std:: f32 :: INFINITY ) ;
62
+ assert_eq ! ( std:: f64 :: MIN as f32 , std:: f32 :: NEG_INFINITY ) ;
63
+ assert_eq ! ( std:: f32 :: INFINITY as f64 , std:: f64 :: INFINITY ) ;
64
+ assert_eq ! ( std:: f32 :: NEG_INFINITY as f64 , std:: f64 :: NEG_INFINITY ) ;
65
+
58
66
// f32 min/max
59
67
assert_eq ! ( ( 1.0 as f32 ) . max( -1.0 ) , 1.0 ) ;
60
68
assert_eq ! ( ( 1.0 as f32 ) . min( -1.0 ) , -1.0 ) ;
0 commit comments