@@ -11,74 +11,216 @@ fn assert_eq<T: PartialEq + Debug>(x: T, y: T) {
11
11
}
12
12
13
13
fn main ( ) {
14
+ basic ( ) ;
15
+ casts ( ) ;
16
+ ops ( ) ;
17
+ }
18
+
19
+ fn basic ( ) {
14
20
// basic arithmetic
15
21
assert_eq ( 6.0_f32 * 6.0_f32 , 36.0_f32 ) ;
16
22
assert_eq ( 6.0_f64 * 6.0_f64 , 36.0_f64 ) ;
17
23
assert_eq ( -{ 5.0_f32 } , -5.0_f32 ) ;
18
24
assert_eq ( -{ 5.0_f64 } , -5.0_f64 ) ;
19
25
// infinities, NaN
20
26
assert ! ( ( 5.0_f32 /0.0 ) . is_infinite( ) ) ;
27
+ assert_ne ! ( { 5.0_f32 /0.0 } , { -5.0_f32 /0.0 } ) ;
21
28
assert ! ( ( 5.0_f64 /0.0 ) . is_infinite( ) ) ;
29
+ assert_ne ! ( { 5.0_f64 /0.0 } , { 5.0_f64 /-0.0 } ) ;
22
30
assert ! ( ( -5.0_f32 ) . sqrt( ) . is_nan( ) ) ;
23
31
assert ! ( ( -5.0_f64 ) . sqrt( ) . is_nan( ) ) ;
32
+ assert_ne ! ( f32 :: NAN , f32 :: NAN ) ;
33
+ assert_ne ! ( f64 :: NAN , f64 :: NAN ) ;
34
+ // negative zero
35
+ let posz = 0.0f32 ;
36
+ let negz = -0.0f32 ;
37
+ assert_eq ( posz, negz) ;
38
+ assert_ne ! ( posz. to_bits( ) , negz. to_bits( ) ) ;
39
+ let posz = 0.0f64 ;
40
+ let negz = -0.0f64 ;
41
+ assert_eq ( posz, negz) ;
42
+ assert_ne ! ( posz. to_bits( ) , negz. to_bits( ) ) ;
24
43
// byte-level transmute
25
44
let x: u64 = unsafe { std:: mem:: transmute ( 42.0_f64 ) } ;
26
45
let y: f64 = unsafe { std:: mem:: transmute ( x) } ;
27
46
assert_eq ( y, 42.0_f64 ) ;
28
47
let x: u32 = unsafe { std:: mem:: transmute ( 42.0_f32 ) } ;
29
48
let y: f32 = unsafe { std:: mem:: transmute ( x) } ;
30
49
assert_eq ( y, 42.0_f32 ) ;
50
+ }
51
+
52
+ fn casts ( ) {
53
+ // f32 -> i32
54
+ assert_eq :: < i32 > ( 0.0f32 as i32 , 0 ) ;
55
+ assert_eq :: < i32 > ( -0.0f32 as i32 , 0 ) ;
56
+ assert_eq :: < i32 > ( /*0x1p-149*/ f32:: from_bits ( 0x00000001 ) as i32 , 0 ) ;
57
+ assert_eq :: < i32 > ( /*-0x1p-149*/ f32:: from_bits ( 0x80000001 ) as i32 , 0 ) ;
58
+ assert_eq :: < i32 > ( /*0x1.19999ap+0*/ f32:: from_bits ( 0x3f8ccccd ) as i32 , 1 ) ;
59
+ assert_eq :: < i32 > ( /*-0x1.19999ap+0*/ f32:: from_bits ( 0xbf8ccccd ) as i32 , -1 ) ;
60
+ assert_eq :: < i32 > ( 1.9f32 as i32 , 1 ) ;
61
+ assert_eq :: < i32 > ( -1.9f32 as i32 , -1 ) ;
62
+ assert_eq :: < i32 > ( 5.0f32 as i32 , 5 ) ;
63
+ assert_eq :: < i32 > ( -5.0f32 as i32 , -5 ) ;
64
+ assert_eq :: < i32 > ( 2147483520.0f32 as i32 , 2147483520 ) ;
65
+ assert_eq :: < i32 > ( -2147483648.0f32 as i32 , -2147483648 ) ;
66
+ // unrepresentable casts
67
+ assert_eq :: < i32 > ( 2147483648.0f32 as i32 , i32:: MAX ) ;
68
+ assert_eq :: < i32 > ( -2147483904.0f32 as i32 , i32:: MIN ) ;
69
+ assert_eq :: < i32 > ( f32:: MAX as i32 , i32:: MAX ) ;
70
+ assert_eq :: < i32 > ( f32:: MIN as i32 , i32:: MIN ) ;
71
+ assert_eq :: < i32 > ( f32:: INFINITY as i32 , i32:: MAX ) ;
72
+ assert_eq :: < i32 > ( f32:: NEG_INFINITY as i32 , i32:: MIN ) ;
73
+ assert_eq :: < i32 > ( f32:: NAN as i32 , 0 ) ;
74
+ assert_eq :: < i32 > ( ( -f32:: NAN ) as i32 , 0 ) ;
75
+
76
+ // f32 -> u32
77
+ assert_eq :: < u32 > ( 0.0f32 as u32 , 0 ) ;
78
+ assert_eq :: < u32 > ( -0.0f32 as u32 , 0 ) ;
79
+ assert_eq :: < u32 > ( /*0x1p-149*/ f32:: from_bits ( 0x1 ) as u32 , 0 ) ;
80
+ assert_eq :: < u32 > ( /*-0x1p-149*/ f32:: from_bits ( 0x80000001 ) as u32 , 0 ) ;
81
+ assert_eq :: < u32 > ( /*0x1.19999ap+0*/ f32:: from_bits ( 0x3f8ccccd ) as u32 , 1 ) ;
82
+ assert_eq :: < u32 > ( 1.9f32 as u32 , 1 ) ;
83
+ assert_eq :: < u32 > ( 5.0f32 as u32 , 5 ) ;
84
+ assert_eq :: < u32 > ( 2147483648.0f32 as u32 , 0x8000_0000 ) ;
85
+ assert_eq :: < u32 > ( 4294967040.0f32 as u32 , 0u32 . wrapping_sub ( 256 ) ) ;
86
+ assert_eq :: < u32 > ( /*-0x1.ccccccp-1*/ f32:: from_bits ( 0xbf666666 ) as u32 , 0 ) ;
87
+ assert_eq :: < u32 > ( /*-0x1.fffffep-1*/ f32:: from_bits ( 0xbf7fffff ) as u32 , 0 ) ;
88
+ assert_eq :: < u32 > ( ( u32:: MAX -127 ) as f32 as u32 , u32:: MAX ) ; // rounding loss
89
+ assert_eq :: < u32 > ( ( u32:: MAX -128 ) as f32 as u32 , u32:: MAX -255 ) ; // rounding loss
90
+ // unrepresentable casts
91
+ assert_eq :: < u32 > ( 4294967296.0f32 as u32 , u32:: MAX ) ;
92
+ assert_eq :: < u32 > ( -5.0f32 as u32 , 0 ) ;
93
+ assert_eq :: < u32 > ( f32:: MAX as u32 , u32:: MAX ) ;
94
+ assert_eq :: < u32 > ( f32:: MIN as u32 , 0 ) ;
95
+ assert_eq :: < u32 > ( f32:: INFINITY as u32 , u32:: MAX ) ;
96
+ assert_eq :: < u32 > ( f32:: NEG_INFINITY as u32 , 0 ) ;
97
+ assert_eq :: < u32 > ( f32:: NAN as u32 , 0 ) ;
98
+ assert_eq :: < u32 > ( ( -f32:: NAN ) as u32 , 0 ) ;
99
+
100
+ // f32 -> i64
101
+ assert_eq :: < i64 > ( 4294967296.0f32 as i64 , 4294967296 ) ;
102
+ assert_eq :: < i64 > ( -4294967296.0f32 as i64 , -4294967296 ) ;
103
+ assert_eq :: < i64 > ( 9223371487098961920.0f32 as i64 , 9223371487098961920 ) ;
104
+ assert_eq :: < i64 > ( -9223372036854775808.0f32 as i64 , -9223372036854775808 ) ;
105
+
106
+ // f64 -> i32
107
+ assert_eq :: < i32 > ( 0.0f64 as i32 , 0 ) ;
108
+ assert_eq :: < i32 > ( -0.0f64 as i32 , 0 ) ;
109
+ assert_eq :: < i32 > ( /*0x1.199999999999ap+0*/ f64:: from_bits ( 0x3ff199999999999a ) as i32 , 1 ) ;
110
+ assert_eq :: < i32 > ( /*-0x1.199999999999ap+0*/ f64:: from_bits ( 0xbff199999999999a ) as i32 , -1 ) ;
111
+ assert_eq :: < i32 > ( 1.9f64 as i32 , 1 ) ;
112
+ assert_eq :: < i32 > ( -1.9f64 as i32 , -1 ) ;
113
+ assert_eq :: < i32 > ( 1e8f64 as i32 , 100_000_000 ) ;
114
+ assert_eq :: < i32 > ( 2147483647.0f64 as i32 , 2147483647 ) ;
115
+ assert_eq :: < i32 > ( -2147483648.0f64 as i32 , -2147483648 ) ;
116
+ // unrepresentable casts
117
+ assert_eq :: < i32 > ( 2147483648.0f64 as i32 , i32:: MAX ) ;
118
+ assert_eq :: < i32 > ( -2147483649.0f64 as i32 , i32:: MIN ) ;
119
+
120
+ // f64 -> i64
121
+ assert_eq :: < i64 > ( 0.0f64 as i64 , 0 ) ;
122
+ assert_eq :: < i64 > ( -0.0f64 as i64 , 0 ) ;
123
+ assert_eq :: < i64 > ( /*0x0.0000000000001p-1022*/ f64:: from_bits ( 0x1 ) as i64 , 0 ) ;
124
+ assert_eq :: < i64 > ( /*-0x0.0000000000001p-1022*/ f64:: from_bits ( 0x8000000000000001 ) as i64 , 0 ) ;
125
+ assert_eq :: < i64 > ( /*0x1.199999999999ap+0*/ f64:: from_bits ( 0x3ff199999999999a ) as i64 , 1 ) ;
126
+ assert_eq :: < i64 > ( /*-0x1.199999999999ap+0*/ f64:: from_bits ( 0xbff199999999999a ) as i64 , -1 ) ;
127
+ assert_eq :: < i64 > ( 5.0f64 as i64 , 5 ) ;
128
+ assert_eq :: < i64 > ( 5.9f64 as i64 , 5 ) ;
129
+ assert_eq :: < i64 > ( -5.0f64 as i64 , -5 ) ;
130
+ assert_eq :: < i64 > ( -5.9f64 as i64 , -5 ) ;
131
+ assert_eq :: < i64 > ( 4294967296.0f64 as i64 , 4294967296 ) ;
132
+ assert_eq :: < i64 > ( -4294967296.0f64 as i64 , -4294967296 ) ;
133
+ assert_eq :: < i64 > ( 9223372036854774784.0f64 as i64 , 9223372036854774784 ) ;
134
+ assert_eq :: < i64 > ( -9223372036854775808.0f64 as i64 , -9223372036854775808 ) ;
135
+ // unrepresentable casts
136
+ assert_eq :: < i64 > ( 9223372036854775808.0f64 as i64 , i64:: MAX ) ;
137
+ assert_eq :: < i64 > ( -9223372036854777856.0f64 as i64 , i64:: MIN ) ;
138
+ assert_eq :: < i64 > ( f64:: MAX as i64 , i64:: MAX ) ;
139
+ assert_eq :: < i64 > ( f64:: MIN as i64 , i64:: MIN ) ;
140
+ assert_eq :: < i64 > ( f64:: INFINITY as i64 , i64:: MAX ) ;
141
+ assert_eq :: < i64 > ( f64:: NEG_INFINITY as i64 , i64:: MIN ) ;
142
+ assert_eq :: < i64 > ( f64:: NAN as i64 , 0 ) ;
143
+ assert_eq :: < i64 > ( ( -f64:: NAN ) as i64 , 0 ) ;
31
144
32
- // f32 <-> int casts
33
- assert_eq ( 5.0f32 as u32 , 5 ) ;
34
- assert_eq ( -5.0f32 as u32 , 0 ) ;
35
- assert_eq ( 5.0f32 as i32 , 5 ) ;
36
- assert_eq ( -5.0f32 as i32 , -5 ) ;
37
- assert_eq ( f32:: MAX as i32 , i32:: MAX ) ;
38
- assert_eq ( f32:: INFINITY as i32 , i32:: MAX ) ;
39
- assert_eq ( f32:: MAX as u32 , u32:: MAX ) ;
40
- assert_eq ( f32:: INFINITY as u32 , u32:: MAX ) ;
41
- assert_eq ( f32:: MIN as i32 , i32:: MIN ) ;
42
- assert_eq ( f32:: NEG_INFINITY as i32 , i32:: MIN ) ;
43
- assert_eq ( f32:: MIN as u32 , 0 ) ;
44
- assert_eq ( f32:: NEG_INFINITY as u32 , 0 ) ;
45
- assert_eq ( f32:: NAN as i32 , 0 ) ;
46
- assert_eq ( f32:: NAN as u32 , 0 ) ;
47
- assert_eq ( ( u32:: MAX -127 ) as f32 as u32 , u32:: MAX ) ; // rounding loss
48
- assert_eq ( ( u32:: MAX -128 ) as f32 as u32 , u32:: MAX -255 ) ; // rounding loss
49
- assert_eq ( 127i8 as f32 , 127.0f32 ) ;
50
- assert_eq ( i128:: MIN as f32 , -170141183460469231731687303715884105728.0f32 ) ;
51
- assert_eq ( u128:: MAX as f32 , f32:: INFINITY ) ; // saturation
52
-
53
- // f64 <-> int casts
54
- assert_eq ( 5.0f64 as u64 , 5 ) ;
55
- assert_eq ( -5.0f64 as u64 , 0 ) ;
56
- assert_eq ( 5.0f64 as i64 , 5 ) ;
57
- assert_eq ( -5.0f64 as i64 , -5 ) ;
58
- assert_eq ( f64:: MAX as i64 , i64:: MAX ) ;
59
- assert_eq ( f64:: INFINITY as i64 , i64:: MAX ) ;
60
- assert_eq ( f64:: MAX as u64 , u64:: MAX ) ;
61
- assert_eq ( f64:: INFINITY as u64 , u64:: MAX ) ;
62
- assert_eq ( f64:: MIN as i64 , i64:: MIN ) ;
63
- assert_eq ( f64:: NEG_INFINITY as i64 , i64:: MIN ) ;
64
- assert_eq ( f64:: MIN as u64 , 0 ) ;
65
- assert_eq ( f64:: NEG_INFINITY as u64 , 0 ) ;
66
- assert_eq ( f64:: NAN as i64 , 0 ) ;
67
- assert_eq ( f64:: NAN as u64 , 0 ) ;
68
- assert_eq ( ( u64:: MAX -1023 ) as f64 as u64 , u64:: MAX ) ; // rounding loss
69
- assert_eq ( ( u64:: MAX -1024 ) as f64 as u64 , u64:: MAX -2047 ) ; // rounding loss
70
- assert_eq ( u128:: MAX as f64 as u128 , u128:: MAX ) ;
71
- assert_eq ( i16:: MIN as f64 , -32768.0f64 ) ;
72
- assert_eq ( u128:: MAX as f64 , 340282366920938463463374607431768211455.0f64 ) ; // even that fits...
73
-
74
- // f32 <-> f64 casts
75
- assert_eq ( 5.0f64 as f32 , 5.0f32 ) ;
76
- assert_eq ( 5.0f32 as f64 , 5.0f64 ) ;
77
- assert_eq ( f64:: MAX as f32 , f32:: INFINITY ) ;
78
- assert_eq ( f64:: MIN as f32 , f32:: NEG_INFINITY ) ;
79
- assert_eq ( f32:: INFINITY as f64 , f64:: INFINITY ) ;
80
- assert_eq ( f32:: NEG_INFINITY as f64 , f64:: NEG_INFINITY ) ;
145
+ // f64 -> u64
146
+ assert_eq :: < u64 > ( 0.0f64 as u64 , 0 ) ;
147
+ assert_eq :: < u64 > ( -0.0f64 as u64 , 0 ) ;
148
+ assert_eq :: < u64 > ( 5.0f64 as u64 , 5 ) ;
149
+ assert_eq :: < u64 > ( -5.0f64 as u64 , 0 ) ;
150
+ assert_eq :: < u64 > ( 1e16f64 as u64 , 10000000000000000 ) ;
151
+ assert_eq :: < u64 > ( ( u64:: MAX -1023 ) as f64 as u64 , u64:: MAX ) ; // rounding loss
152
+ assert_eq :: < u64 > ( ( u64:: MAX -1024 ) as f64 as u64 , u64:: MAX -2047 ) ; // rounding loss
153
+ assert_eq :: < u64 > ( 9223372036854775808.0f64 as u64 , 9223372036854775808 ) ;
154
+ // unrepresentable casts
155
+ assert_eq :: < u64 > ( 18446744073709551616.0f64 as u64 , u64:: MAX ) ;
156
+ assert_eq :: < u64 > ( f64:: MAX as u64 , u64:: MAX ) ;
157
+ assert_eq :: < u64 > ( f64:: MIN as u64 , 0 ) ;
158
+ assert_eq :: < u64 > ( f64:: INFINITY as u64 , u64:: MAX ) ;
159
+ assert_eq :: < u64 > ( f64:: NEG_INFINITY as u64 , 0 ) ;
160
+ assert_eq :: < u64 > ( f64:: NAN as u64 , 0 ) ;
161
+ assert_eq :: < u64 > ( ( -f64:: NAN ) as u64 , 0 ) ;
162
+
163
+ // int -> f32
164
+ assert_eq :: < f32 > ( 127i8 as f32 , 127.0 ) ;
165
+ assert_eq :: < f32 > ( 2147483647i32 as f32 , 2147483648.0 ) ;
166
+ assert_eq :: < f32 > ( ( -2147483648i32 ) as f32 , -2147483648.0 ) ;
167
+ assert_eq :: < f32 > ( 1234567890i32 as f32 , /*0x1.26580cp+30*/ f32:: from_bits ( 0x4e932c06 ) ) ;
168
+ assert_eq :: < f32 > ( 16777217i32 as f32 , 16777216.0 ) ;
169
+ assert_eq :: < f32 > ( ( -16777217i32 ) as f32 , -16777216.0 ) ;
170
+ assert_eq :: < f32 > ( 16777219i32 as f32 , 16777220.0 ) ;
171
+ assert_eq :: < f32 > ( ( -16777219i32 ) as f32 , -16777220.0 ) ;
172
+ assert_eq :: < f32 > ( 0x7fffff4000000001i64 as f32 , /*0x1.fffffep+62*/ f32:: from_bits ( 0x5effffff ) ) ;
173
+ assert_eq :: < f32 > ( 0x8000004000000001u64 as i64 as f32 , /*-0x1.fffffep+62*/ f32:: from_bits ( 0xdeffffff ) ) ;
174
+ assert_eq :: < f32 > ( 0x0020000020000001i64 as f32 , /*0x1.000002p+53*/ f32:: from_bits ( 0x5a000001 ) ) ;
175
+ assert_eq :: < f32 > ( 0xffdfffffdfffffffu64 as i64 as f32 , /*-0x1.000002p+53*/ f32:: from_bits ( 0xda000001 ) ) ;
176
+ assert_eq :: < f32 > ( i128:: MIN as f32 , -170141183460469231731687303715884105728.0f32 ) ;
177
+ assert_eq :: < f32 > ( u128:: MAX as f32 , f32:: INFINITY ) ; // saturation
178
+
179
+ // int -> f64
180
+ assert_eq :: < f64 > ( 127i8 as f64 , 127.0 ) ;
181
+ assert_eq :: < f64 > ( i16:: MIN as f64 , -32768.0f64 ) ;
182
+ assert_eq :: < f64 > ( 2147483647i32 as f64 , 2147483647.0 ) ;
183
+ assert_eq :: < f64 > ( -2147483648i32 as f64 , -2147483648.0 ) ;
184
+ assert_eq :: < f64 > ( 987654321i32 as f64 , 987654321.0 ) ;
185
+ assert_eq :: < f64 > ( 9223372036854775807i64 as f64 , 9223372036854775807.0 ) ;
186
+ assert_eq :: < f64 > ( -9223372036854775808i64 as f64 , -9223372036854775808.0 ) ;
187
+ assert_eq :: < f64 > ( 4669201609102990i64 as f64 , 4669201609102990.0 ) ; // Feigenbaum (?)
188
+ assert_eq :: < f64 > ( 9007199254740993i64 as f64 , 9007199254740992.0 ) ;
189
+ assert_eq :: < f64 > ( -9007199254740993i64 as f64 , -9007199254740992.0 ) ;
190
+ assert_eq :: < f64 > ( 9007199254740995i64 as f64 , 9007199254740996.0 ) ;
191
+ assert_eq :: < f64 > ( -9007199254740995i64 as f64 , -9007199254740996.0 ) ;
192
+ assert_eq :: < f64 > ( u128:: MAX as f64 , 340282366920938463463374607431768211455.0f64 ) ; // even that fits...
193
+
194
+ // f32 -> f64
195
+ assert_eq :: < u64 > ( ( 0.0f32 as f64 ) . to_bits ( ) , 0.0f64 . to_bits ( ) ) ;
196
+ assert_eq :: < u64 > ( ( ( -0.0f32 ) as f64 ) . to_bits ( ) , ( -0.0f64 ) . to_bits ( ) ) ;
197
+ assert_eq :: < f64 > ( 5.0f32 as f64 , 5.0f64 ) ;
198
+ assert_eq :: < f64 > ( /*0x1p-149*/ f32:: from_bits ( 0x1 ) as f64 , /*0x1p-149*/ f64:: from_bits ( 0x36a0000000000000 ) ) ;
199
+ assert_eq :: < f64 > ( /*-0x1p-149*/ f32:: from_bits ( 0x80000001 ) as f64 , /*-0x1p-149*/ f64:: from_bits ( 0xb6a0000000000000 ) ) ;
200
+ assert_eq :: < f64 > ( /*0x1.fffffep+127*/ f32:: from_bits ( 0x7f7fffff ) as f64 , /*0x1.fffffep+127*/ f64:: from_bits ( 0x47efffffe0000000 ) ) ;
201
+ assert_eq :: < f64 > ( /*-0x1.fffffep+127*/ ( -f32:: from_bits ( 0x7f7fffff ) ) as f64 , /*-0x1.fffffep+127*/ -f64:: from_bits ( 0x47efffffe0000000 ) ) ;
202
+ assert_eq :: < f64 > ( /*0x1p-119*/ f32:: from_bits ( 0x4000000 ) as f64 , /*0x1p-119*/ f64:: from_bits ( 0x3880000000000000 ) ) ;
203
+ assert_eq :: < f64 > ( /*0x1.8f867ep+125*/ f32:: from_bits ( 0x7e47c33f ) as f64 , 6.6382536710104395e+37 ) ;
204
+ assert_eq :: < f64 > ( f32:: INFINITY as f64 , f64:: INFINITY ) ;
205
+ assert_eq :: < f64 > ( f32:: NEG_INFINITY as f64 , f64:: NEG_INFINITY ) ;
206
+
207
+ // f64 -> f32
208
+ assert_eq :: < u32 > ( ( 0.0f64 as f32 ) . to_bits ( ) , 0.0f32 . to_bits ( ) ) ;
209
+ assert_eq :: < u32 > ( ( ( -0.0f64 ) as f32 ) . to_bits ( ) , ( -0.0f32 ) . to_bits ( ) ) ;
210
+ assert_eq :: < f32 > ( 5.0f64 as f32 , 5.0f32 ) ;
211
+ assert_eq :: < f32 > ( /*0x0.0000000000001p-1022*/ f64:: from_bits ( 0x1 ) as f32 , 0.0 ) ;
212
+ assert_eq :: < f32 > ( /*-0x0.0000000000001p-1022*/ ( -f64:: from_bits ( 0x1 ) ) as f32 , -0.0 ) ;
213
+
214
+ assert_eq :: < f32 > ( /*0x1.fffffe0000000p-127*/ f64:: from_bits ( 0x380fffffe0000000 ) as f32 , /*0x1p-149*/ f32:: from_bits ( 0x800000 ) ) ;
215
+ assert_eq :: < f32 > ( /*0x1.4eae4f7024c7p+108*/ f64:: from_bits ( 0x46b4eae4f7024c70 ) as f32 , /*0x1.4eae5p+108*/ f32:: from_bits ( 0x75a75728 ) ) ;
216
+
217
+ assert_eq :: < f32 > ( f64:: MAX as f32 , f32:: INFINITY ) ;
218
+ assert_eq :: < f32 > ( f64:: MIN as f32 , f32:: NEG_INFINITY ) ;
219
+ assert_eq :: < f32 > ( f64:: INFINITY as f32 , f32:: INFINITY ) ;
220
+ assert_eq :: < f32 > ( f64:: NEG_INFINITY as f32 , f32:: NEG_INFINITY ) ;
221
+ }
81
222
223
+ fn ops ( ) {
82
224
// f32 min/max
83
225
assert_eq ( ( 1.0 as f32 ) . max ( -1.0 ) , 1.0 ) ;
84
226
assert_eq ( ( 1.0 as f32 ) . min ( -1.0 ) , -1.0 ) ;
0 commit comments