From 83878ea2286f2b2e21411d134f390b31bbfaec7b Mon Sep 17 00:00:00 2001 From: Roger Curley Date: Sun, 13 Jul 2025 22:36:56 -0400 Subject: Consolidate signum tests --- library/coretests/tests/floats/f32.rs | 12 ------------ library/coretests/tests/floats/f64.rs | 12 ------------ library/coretests/tests/floats/mod.rs | 20 ++++++++++++++++++++ 3 files changed, 20 insertions(+), 24 deletions(-) diff --git a/library/coretests/tests/floats/f32.rs b/library/coretests/tests/floats/f32.rs index ab68b9dbfbe..23af02cada0 100644 --- a/library/coretests/tests/floats/f32.rs +++ b/library/coretests/tests/floats/f32.rs @@ -29,18 +29,6 @@ const NAN_MASK2: u32 = 0x0055_5555; /// They serve as a way to get an idea of the real precision of floating point operations on different platforms. const APPROX_DELTA: f32 = if cfg!(miri) { 1e-4 } else { 1e-6 }; -#[test] -fn test_signum() { - assert_biteq!(f32::INFINITY.signum(), 1f32); - assert_biteq!(1f32.signum(), 1f32); - assert_biteq!(0f32.signum(), 1f32); - assert_biteq!((-0f32).signum(), -1f32); - assert_biteq!((-1f32).signum(), -1f32); - assert_biteq!(f32::NEG_INFINITY.signum(), -1f32); - assert_biteq!((1f32 / f32::NEG_INFINITY).signum(), -1f32); - assert!(f32::NAN.signum().is_nan()); -} - #[test] fn test_is_sign_positive() { assert!(f32::INFINITY.is_sign_positive()); diff --git a/library/coretests/tests/floats/f64.rs b/library/coretests/tests/floats/f64.rs index 05c2df085d5..cc3311aaa7b 100644 --- a/library/coretests/tests/floats/f64.rs +++ b/library/coretests/tests/floats/f64.rs @@ -24,18 +24,6 @@ const NAN_MASK1: u64 = 0x000a_aaaa_aaaa_aaaa; /// Second pattern over the mantissa const NAN_MASK2: u64 = 0x0005_5555_5555_5555; -#[test] -fn test_signum() { - assert_biteq!(f64::INFINITY.signum(), 1f64); - assert_biteq!(1f64.signum(), 1f64); - assert_biteq!(0f64.signum(), 1f64); - assert_biteq!((-0f64).signum(), -1f64); - assert_biteq!((-1f64).signum(), -1f64); - assert_biteq!(f64::NEG_INFINITY.signum(), -1f64); - assert_biteq!((1f64 / f64::NEG_INFINITY).signum(), -1f64); - assert!(f64::NAN.signum().is_nan()); -} - #[test] fn test_is_sign_positive() { assert!(f64::INFINITY.is_sign_positive()); diff --git a/library/coretests/tests/floats/mod.rs b/library/coretests/tests/floats/mod.rs index abfcfdd9991..26735bbeb0d 100644 --- a/library/coretests/tests/floats/mod.rs +++ b/library/coretests/tests/floats/mod.rs @@ -957,3 +957,23 @@ float_test! { assert!(Float::NEG_INFINITY.fract().is_nan()); } } + +float_test! { + name: signum, + attrs: { + f16: #[cfg(any(miri, target_has_reliable_f16_math))], + f128: #[cfg(any(miri, target_has_reliable_f128_math))], + }, + test { + let one: Float = 1.0; + let zero: Float = 0.0; + assert_biteq!(Float::INFINITY.signum(), one); + assert_biteq!(one.signum(), one); + assert_biteq!(zero.signum(), one); + assert_biteq!((-zero).signum(), -one); + assert_biteq!((-one).signum(), -one); + assert_biteq!(Float::NEG_INFINITY.signum(), -one); + assert_biteq!((one / Float::NEG_INFINITY).signum(), -one); + assert!(Float::NAN.signum().is_nan()); + } +} -- cgit 1.4.1-3-g733a5