Skip to content

Commit 79cb013

Browse files
committed
float tests: deduplicate min, max, and rounding tests
1 parent 20cf8ca commit 79cb013

File tree

5 files changed

+56
-456
lines changed

5 files changed

+56
-456
lines changed

library/coretests/tests/floats/f128.rs

Lines changed: 0 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -55,34 +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-
#[cfg(any(miri, target_has_reliable_f128_math))]
60-
fn test_min_nan() {
61-
assert_biteq!(f128::NAN.min(2.0), 2.0);
62-
assert_biteq!(2.0f128.min(f128::NAN), 2.0);
63-
}
64-
65-
#[test]
66-
#[cfg(any(miri, target_has_reliable_f128_math))]
67-
fn test_max_nan() {
68-
assert_biteq!(f128::NAN.max(2.0), 2.0);
69-
assert_biteq!(2.0f128.max(f128::NAN), 2.0);
70-
}
71-
72-
#[test]
73-
#[cfg(any(miri, target_has_reliable_f128_math))]
74-
fn test_minimum() {
75-
assert!(f128::NAN.minimum(2.0).is_nan());
76-
assert!(2.0f128.minimum(f128::NAN).is_nan());
77-
}
78-
79-
#[test]
80-
#[cfg(any(miri, target_has_reliable_f128_math))]
81-
fn test_maximum() {
82-
assert!(f128::NAN.maximum(2.0).is_nan());
83-
assert!(2.0f128.maximum(f128::NAN).is_nan());
84-
}
85-
8658
#[test]
8759
fn test_nan() {
8860
let nan: f128 = f128::NAN;
@@ -234,98 +206,6 @@ fn test_classify() {
234206
assert_eq!(1e-4932f128.classify(), Fp::Subnormal);
235207
}
236208

237-
#[test]
238-
#[cfg(target_has_reliable_f128_math)]
239-
fn test_floor() {
240-
assert_biteq!(1.0f128.floor(), 1.0f128);
241-
assert_biteq!(1.3f128.floor(), 1.0f128);
242-
assert_biteq!(1.5f128.floor(), 1.0f128);
243-
assert_biteq!(1.7f128.floor(), 1.0f128);
244-
assert_biteq!(0.0f128.floor(), 0.0f128);
245-
assert_biteq!((-0.0f128).floor(), -0.0f128);
246-
assert_biteq!((-1.0f128).floor(), -1.0f128);
247-
assert_biteq!((-1.3f128).floor(), -2.0f128);
248-
assert_biteq!((-1.5f128).floor(), -2.0f128);
249-
assert_biteq!((-1.7f128).floor(), -2.0f128);
250-
}
251-
252-
#[test]
253-
#[cfg(any(miri, target_has_reliable_f128_math))]
254-
fn test_ceil() {
255-
assert_biteq!(1.0f128.ceil(), 1.0f128);
256-
assert_biteq!(1.3f128.ceil(), 2.0f128);
257-
assert_biteq!(1.5f128.ceil(), 2.0f128);
258-
assert_biteq!(1.7f128.ceil(), 2.0f128);
259-
assert_biteq!(0.0f128.ceil(), 0.0f128);
260-
assert_biteq!((-0.0f128).ceil(), -0.0f128);
261-
assert_biteq!((-1.0f128).ceil(), -1.0f128);
262-
assert_biteq!((-1.3f128).ceil(), -1.0f128);
263-
assert_biteq!((-1.5f128).ceil(), -1.0f128);
264-
assert_biteq!((-1.7f128).ceil(), -1.0f128);
265-
}
266-
267-
#[test]
268-
#[cfg(any(miri, target_has_reliable_f128_math))]
269-
fn test_round() {
270-
assert_biteq!(2.5f128.round(), 3.0f128);
271-
assert_biteq!(1.0f128.round(), 1.0f128);
272-
assert_biteq!(1.3f128.round(), 1.0f128);
273-
assert_biteq!(1.5f128.round(), 2.0f128);
274-
assert_biteq!(1.7f128.round(), 2.0f128);
275-
assert_biteq!(0.0f128.round(), 0.0f128);
276-
assert_biteq!((-0.0f128).round(), -0.0f128);
277-
assert_biteq!((-1.0f128).round(), -1.0f128);
278-
assert_biteq!((-1.3f128).round(), -1.0f128);
279-
assert_biteq!((-1.5f128).round(), -2.0f128);
280-
assert_biteq!((-1.7f128).round(), -2.0f128);
281-
}
282-
283-
#[test]
284-
#[cfg(any(miri, target_has_reliable_f128_math))]
285-
fn test_round_ties_even() {
286-
assert_biteq!(2.5f128.round_ties_even(), 2.0f128);
287-
assert_biteq!(1.0f128.round_ties_even(), 1.0f128);
288-
assert_biteq!(1.3f128.round_ties_even(), 1.0f128);
289-
assert_biteq!(1.5f128.round_ties_even(), 2.0f128);
290-
assert_biteq!(1.7f128.round_ties_even(), 2.0f128);
291-
assert_biteq!(0.0f128.round_ties_even(), 0.0f128);
292-
assert_biteq!((-0.0f128).round_ties_even(), -0.0f128);
293-
assert_biteq!((-1.0f128).round_ties_even(), -1.0f128);
294-
assert_biteq!((-1.3f128).round_ties_even(), -1.0f128);
295-
assert_biteq!((-1.5f128).round_ties_even(), -2.0f128);
296-
assert_biteq!((-1.7f128).round_ties_even(), -2.0f128);
297-
}
298-
299-
#[test]
300-
#[cfg(any(miri, target_has_reliable_f128_math))]
301-
fn test_trunc() {
302-
assert_biteq!(1.0f128.trunc(), 1.0f128);
303-
assert_biteq!(1.3f128.trunc(), 1.0f128);
304-
assert_biteq!(1.5f128.trunc(), 1.0f128);
305-
assert_biteq!(1.7f128.trunc(), 1.0f128);
306-
assert_biteq!(0.0f128.trunc(), 0.0f128);
307-
assert_biteq!((-0.0f128).trunc(), -0.0f128);
308-
assert_biteq!((-1.0f128).trunc(), -1.0f128);
309-
assert_biteq!((-1.3f128).trunc(), -1.0f128);
310-
assert_biteq!((-1.5f128).trunc(), -1.0f128);
311-
assert_biteq!((-1.7f128).trunc(), -1.0f128);
312-
}
313-
314-
#[test]
315-
#[cfg(any(miri, target_has_reliable_f128_math))]
316-
fn test_fract() {
317-
assert_biteq!(1.0f128.fract(), 0.0f128);
318-
assert_biteq!(1.3f128.fract(), 0.300000000000000000000000000000000039f128);
319-
assert_biteq!(1.5f128.fract(), 0.5f128);
320-
assert_biteq!(1.7f128.fract(), 0.7f128);
321-
assert_biteq!(0.0f128.fract(), 0.0f128);
322-
assert_biteq!((-0.0f128).fract(), 0.0f128);
323-
assert_biteq!((-1.0f128).fract(), 0.0f128);
324-
assert_biteq!((-1.3f128).fract(), -0.300000000000000000000000000000000039f128);
325-
assert_biteq!((-1.5f128).fract(), -0.5f128);
326-
assert_biteq!((-1.7f128).fract(), -0.699999999999999999999999999999999961f128);
327-
}
328-
329209
#[test]
330210
#[cfg(any(miri, target_has_reliable_f128_math))]
331211
fn test_abs() {

library/coretests/tests/floats/f16.rs

Lines changed: 0 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -51,34 +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-
#[cfg(any(miri, target_has_reliable_f16_math))]
56-
fn test_min_nan() {
57-
assert_biteq!(f16::NAN.min(2.0), 2.0);
58-
assert_biteq!(2.0f16.min(f16::NAN), 2.0);
59-
}
60-
61-
#[test]
62-
#[cfg(any(miri, target_has_reliable_f16_math))]
63-
fn test_max_nan() {
64-
assert_biteq!(f16::NAN.max(2.0), 2.0);
65-
assert_biteq!(2.0f16.max(f16::NAN), 2.0);
66-
}
67-
68-
#[test]
69-
#[cfg(any(miri, target_has_reliable_f16_math))]
70-
fn test_minimum() {
71-
assert!(f16::NAN.minimum(2.0).is_nan());
72-
assert!(2.0f16.minimum(f16::NAN).is_nan());
73-
}
74-
75-
#[test]
76-
#[cfg(any(miri, target_has_reliable_f16_math))]
77-
fn test_maximum() {
78-
assert!(f16::NAN.maximum(2.0).is_nan());
79-
assert!(2.0f16.maximum(f16::NAN).is_nan());
80-
}
81-
8254
#[test]
8355
fn test_nan() {
8456
let nan: f16 = f16::NAN;
@@ -230,98 +202,6 @@ fn test_classify() {
230202
assert_eq!(1e-5f16.classify(), Fp::Subnormal);
231203
}
232204

233-
#[test]
234-
#[cfg(any(miri, target_has_reliable_f16_math))]
235-
fn test_floor() {
236-
assert_biteq!(1.0f16.floor(), 1.0f16);
237-
assert_biteq!(1.3f16.floor(), 1.0f16);
238-
assert_biteq!(1.5f16.floor(), 1.0f16);
239-
assert_biteq!(1.7f16.floor(), 1.0f16);
240-
assert_biteq!(0.0f16.floor(), 0.0f16);
241-
assert_biteq!((-0.0f16).floor(), -0.0f16);
242-
assert_biteq!((-1.0f16).floor(), -1.0f16);
243-
assert_biteq!((-1.3f16).floor(), -2.0f16);
244-
assert_biteq!((-1.5f16).floor(), -2.0f16);
245-
assert_biteq!((-1.7f16).floor(), -2.0f16);
246-
}
247-
248-
#[test]
249-
#[cfg(any(miri, target_has_reliable_f16_math))]
250-
fn test_ceil() {
251-
assert_biteq!(1.0f16.ceil(), 1.0f16);
252-
assert_biteq!(1.3f16.ceil(), 2.0f16);
253-
assert_biteq!(1.5f16.ceil(), 2.0f16);
254-
assert_biteq!(1.7f16.ceil(), 2.0f16);
255-
assert_biteq!(0.0f16.ceil(), 0.0f16);
256-
assert_biteq!((-0.0f16).ceil(), -0.0f16);
257-
assert_biteq!((-1.0f16).ceil(), -1.0f16);
258-
assert_biteq!((-1.3f16).ceil(), -1.0f16);
259-
assert_biteq!((-1.5f16).ceil(), -1.0f16);
260-
assert_biteq!((-1.7f16).ceil(), -1.0f16);
261-
}
262-
263-
#[test]
264-
#[cfg(any(miri, target_has_reliable_f16_math))]
265-
fn test_round() {
266-
assert_biteq!(2.5f16.round(), 3.0f16);
267-
assert_biteq!(1.0f16.round(), 1.0f16);
268-
assert_biteq!(1.3f16.round(), 1.0f16);
269-
assert_biteq!(1.5f16.round(), 2.0f16);
270-
assert_biteq!(1.7f16.round(), 2.0f16);
271-
assert_biteq!(0.0f16.round(), 0.0f16);
272-
assert_biteq!((-0.0f16).round(), -0.0f16);
273-
assert_biteq!((-1.0f16).round(), -1.0f16);
274-
assert_biteq!((-1.3f16).round(), -1.0f16);
275-
assert_biteq!((-1.5f16).round(), -2.0f16);
276-
assert_biteq!((-1.7f16).round(), -2.0f16);
277-
}
278-
279-
#[test]
280-
#[cfg(any(miri, target_has_reliable_f16_math))]
281-
fn test_round_ties_even() {
282-
assert_biteq!(2.5f16.round_ties_even(), 2.0f16);
283-
assert_biteq!(1.0f16.round_ties_even(), 1.0f16);
284-
assert_biteq!(1.3f16.round_ties_even(), 1.0f16);
285-
assert_biteq!(1.5f16.round_ties_even(), 2.0f16);
286-
assert_biteq!(1.7f16.round_ties_even(), 2.0f16);
287-
assert_biteq!(0.0f16.round_ties_even(), 0.0f16);
288-
assert_biteq!((-0.0f16).round_ties_even(), -0.0f16);
289-
assert_biteq!((-1.0f16).round_ties_even(), -1.0f16);
290-
assert_biteq!((-1.3f16).round_ties_even(), -1.0f16);
291-
assert_biteq!((-1.5f16).round_ties_even(), -2.0f16);
292-
assert_biteq!((-1.7f16).round_ties_even(), -2.0f16);
293-
}
294-
295-
#[test]
296-
#[cfg(any(miri, target_has_reliable_f16_math))]
297-
fn test_trunc() {
298-
assert_biteq!(1.0f16.trunc(), 1.0f16);
299-
assert_biteq!(1.3f16.trunc(), 1.0f16);
300-
assert_biteq!(1.5f16.trunc(), 1.0f16);
301-
assert_biteq!(1.7f16.trunc(), 1.0f16);
302-
assert_biteq!(0.0f16.trunc(), 0.0f16);
303-
assert_biteq!((-0.0f16).trunc(), -0.0f16);
304-
assert_biteq!((-1.0f16).trunc(), -1.0f16);
305-
assert_biteq!((-1.3f16).trunc(), -1.0f16);
306-
assert_biteq!((-1.5f16).trunc(), -1.0f16);
307-
assert_biteq!((-1.7f16).trunc(), -1.0f16);
308-
}
309-
310-
#[test]
311-
#[cfg(any(miri, target_has_reliable_f16_math))]
312-
fn test_fract() {
313-
assert_biteq!(1.0f16.fract(), 0.0f16);
314-
assert_biteq!(1.3f16.fract(), 0.2998f16);
315-
assert_biteq!(1.5f16.fract(), 0.5f16);
316-
assert_biteq!(1.7f16.fract(), 0.7f16);
317-
assert_biteq!(0.0f16.fract(), 0.0f16);
318-
assert_biteq!((-0.0f16).fract(), 0.0f16);
319-
assert_biteq!((-1.0f16).fract(), 0.0f16);
320-
assert_biteq!((-1.3f16).fract(), -0.2998f16);
321-
assert_biteq!((-1.5f16).fract(), -0.5f16);
322-
assert_biteq!((-1.7f16).fract(), -0.7f16);
323-
}
324-
325205
#[test]
326206
#[cfg(any(miri, target_has_reliable_f16_math))]
327207
fn test_abs() {

library/coretests/tests/floats/f32.rs

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

33-
#[test]
34-
fn test_min_nan() {
35-
assert_biteq!(f32::NAN.min(2.0), 2.0);
36-
assert_biteq!(2.0f32.min(f32::NAN), 2.0);
37-
}
38-
39-
#[test]
40-
fn test_max_nan() {
41-
assert_biteq!(f32::NAN.max(2.0), 2.0);
42-
assert_biteq!(2.0f32.max(f32::NAN), 2.0);
43-
}
44-
45-
#[test]
46-
fn test_minimum() {
47-
assert!(f32::NAN.minimum(2.0).is_nan());
48-
assert!(2.0f32.minimum(f32::NAN).is_nan());
49-
}
50-
51-
#[test]
52-
fn test_maximum() {
53-
assert!(f32::NAN.maximum(2.0).is_nan());
54-
assert!(2.0f32.maximum(f32::NAN).is_nan());
55-
}
56-
5733
#[test]
5834
fn test_nan() {
5935
let nan: f32 = f32::NAN;
@@ -205,92 +181,6 @@ fn test_classify() {
205181
assert_eq!(1e-38f32.classify(), Fp::Subnormal);
206182
}
207183

208-
#[test]
209-
fn test_floor() {
210-
assert_biteq!(f32::math::floor(1.0f32), 1.0f32);
211-
assert_biteq!(f32::math::floor(1.3f32), 1.0f32);
212-
assert_biteq!(f32::math::floor(1.5f32), 1.0f32);
213-
assert_biteq!(f32::math::floor(1.7f32), 1.0f32);
214-
assert_biteq!(f32::math::floor(0.0f32), 0.0f32);
215-
assert_biteq!(f32::math::floor(-0.0f32), -0.0f32);
216-
assert_biteq!(f32::math::floor(-1.0f32), -1.0f32);
217-
assert_biteq!(f32::math::floor(-1.3f32), -2.0f32);
218-
assert_biteq!(f32::math::floor(-1.5f32), -2.0f32);
219-
assert_biteq!(f32::math::floor(-1.7f32), -2.0f32);
220-
}
221-
222-
#[test]
223-
fn test_ceil() {
224-
assert_biteq!(f32::math::ceil(1.0f32), 1.0f32);
225-
assert_biteq!(f32::math::ceil(1.3f32), 2.0f32);
226-
assert_biteq!(f32::math::ceil(1.5f32), 2.0f32);
227-
assert_biteq!(f32::math::ceil(1.7f32), 2.0f32);
228-
assert_biteq!(f32::math::ceil(0.0f32), 0.0f32);
229-
assert_biteq!(f32::math::ceil(-0.0f32), -0.0f32);
230-
assert_biteq!(f32::math::ceil(-1.0f32), -1.0f32);
231-
assert_biteq!(f32::math::ceil(-1.3f32), -1.0f32);
232-
assert_biteq!(f32::math::ceil(-1.5f32), -1.0f32);
233-
assert_biteq!(f32::math::ceil(-1.7f32), -1.0f32);
234-
}
235-
236-
#[test]
237-
fn test_round() {
238-
assert_biteq!(f32::math::round(2.5f32), 3.0f32);
239-
assert_biteq!(f32::math::round(1.0f32), 1.0f32);
240-
assert_biteq!(f32::math::round(1.3f32), 1.0f32);
241-
assert_biteq!(f32::math::round(1.5f32), 2.0f32);
242-
assert_biteq!(f32::math::round(1.7f32), 2.0f32);
243-
assert_biteq!(f32::math::round(0.0f32), 0.0f32);
244-
assert_biteq!(f32::math::round(-0.0f32), -0.0f32);
245-
assert_biteq!(f32::math::round(-1.0f32), -1.0f32);
246-
assert_biteq!(f32::math::round(-1.3f32), -1.0f32);
247-
assert_biteq!(f32::math::round(-1.5f32), -2.0f32);
248-
assert_biteq!(f32::math::round(-1.7f32), -2.0f32);
249-
}
250-
251-
#[test]
252-
fn test_round_ties_even() {
253-
assert_biteq!(f32::math::round_ties_even(2.5f32), 2.0f32);
254-
assert_biteq!(f32::math::round_ties_even(1.0f32), 1.0f32);
255-
assert_biteq!(f32::math::round_ties_even(1.3f32), 1.0f32);
256-
assert_biteq!(f32::math::round_ties_even(1.5f32), 2.0f32);
257-
assert_biteq!(f32::math::round_ties_even(1.7f32), 2.0f32);
258-
assert_biteq!(f32::math::round_ties_even(0.0f32), 0.0f32);
259-
assert_biteq!(f32::math::round_ties_even(-0.0f32), -0.0f32);
260-
assert_biteq!(f32::math::round_ties_even(-1.0f32), -1.0f32);
261-
assert_biteq!(f32::math::round_ties_even(-1.3f32), -1.0f32);
262-
assert_biteq!(f32::math::round_ties_even(-1.5f32), -2.0f32);
263-
assert_biteq!(f32::math::round_ties_even(-1.7f32), -2.0f32);
264-
}
265-
266-
#[test]
267-
fn test_trunc() {
268-
assert_biteq!(f32::math::trunc(1.0f32), 1.0f32);
269-
assert_biteq!(f32::math::trunc(1.3f32), 1.0f32);
270-
assert_biteq!(f32::math::trunc(1.5f32), 1.0f32);
271-
assert_biteq!(f32::math::trunc(1.7f32), 1.0f32);
272-
assert_biteq!(f32::math::trunc(0.0f32), 0.0f32);
273-
assert_biteq!(f32::math::trunc(-0.0f32), -0.0f32);
274-
assert_biteq!(f32::math::trunc(-1.0f32), -1.0f32);
275-
assert_biteq!(f32::math::trunc(-1.3f32), -1.0f32);
276-
assert_biteq!(f32::math::trunc(-1.5f32), -1.0f32);
277-
assert_biteq!(f32::math::trunc(-1.7f32), -1.0f32);
278-
}
279-
280-
#[test]
281-
fn test_fract() {
282-
assert_biteq!(f32::math::fract(1.0f32), 0.0f32);
283-
assert_biteq!(f32::math::fract(1.3f32), 0.29999995f32);
284-
assert_biteq!(f32::math::fract(1.5f32), 0.5f32);
285-
assert_biteq!(f32::math::fract(1.7f32), 0.70000005f32);
286-
assert_biteq!(f32::math::fract(0.0f32), 0.0f32);
287-
assert_biteq!(f32::math::fract(-0.0f32), 0.0f32);
288-
assert_biteq!(f32::math::fract(-1.0f32), 0.0f32);
289-
assert_biteq!(f32::math::fract(-1.3f32), -0.29999995f32);
290-
assert_biteq!(f32::math::fract(-1.5f32), -0.5f32);
291-
assert_biteq!(f32::math::fract(-1.7f32), -0.70000005f32);
292-
}
293-
294184
#[test]
295185
fn test_abs() {
296186
assert_biteq!(f32::INFINITY.abs(), f32::INFINITY);

0 commit comments

Comments
 (0)