about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoger Curley <rocurley@gmail.com>2025-07-13 22:36:56 -0400
committerRoger Curley <rocurley@gmail.com>2025-08-07 22:06:51 -0400
commit83878ea2286f2b2e21411d134f390b31bbfaec7b (patch)
tree61ef1922b1f1eb9d846200864527bbb811401529
parentb4a3d3014e128fcc8dd0e11136929863a3768cae (diff)
Consolidate signum tests
-rw-r--r--library/coretests/tests/floats/f32.rs12
-rw-r--r--library/coretests/tests/floats/f64.rs12
-rw-r--r--library/coretests/tests/floats/mod.rs20
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
@@ -30,18 +30,6 @@ const NAN_MASK2: u32 = 0x0055_5555;
 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());
     assert!(1f32.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
@@ -25,18 +25,6 @@ const NAN_MASK1: u64 = 0x000a_aaaa_aaaa_aaaa;
 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());
     assert!(1f64.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<Float> {
+        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());
+    }
+}