Fix formatting and add unit tests for panic cases
diff --git a/src/libstd/f32.rs b/src/libstd/f32.rs
index a5e2872..688d9c1 100644
--- a/src/libstd/f32.rs
+++ b/src/libstd/f32.rs
@@ -970,7 +970,7 @@
/// assert!((-3.0f32).clamp(-2.0f32, 1.0f32) == -2.0f32);
/// assert!((0.0f32).clamp(-2.0f32, 1.0f32) == 0.0f32);
/// assert!((2.0f32).clamp(-2.0f32, 1.0f32) == 1.0f32);
- /// assert!((std::f32::NAN).clamp(-2.0f32, 1.0f32).is_nan());
+ /// assert!((std::f32::NAN).clamp(-2.0f32, 1.0f32).is_nan());
/// ```
#[unstable(feature = "clamp", issue = "44095")]
#[inline]
@@ -1582,4 +1582,22 @@
assert_eq!(f32::from_bits(masked_nan1).to_bits(), masked_nan1);
assert_eq!(f32::from_bits(masked_nan2).to_bits(), masked_nan2);
}
+
+ #[test]
+ #[should_panic]
+ fn test_clamp_min_greater_than_max() {
+ 1.0f32.clamp(3.0, 1.0);
+ }
+
+ #[test]
+ #[should_panic]
+ fn test_clamp_min_is_nan() {
+ 1.0f32.clamp(NAN, 1.0);
+ }
+
+ #[test]
+ #[should_panic]
+ fn test_clamp_max_is_nan() {
+ 1.0f32.clamp(3.0, NAN);
+ }
}
diff --git a/src/libstd/f64.rs b/src/libstd/f64.rs
index f69c0b8..5c3bc05 100644
--- a/src/libstd/f64.rs
+++ b/src/libstd/f64.rs
@@ -892,7 +892,7 @@
/// assert!((-3.0f64).clamp(-2.0f64, 1.0f64) == -2.0f64);
/// assert!((0.0f64).clamp(-2.0f64, 1.0f64) == 0.0f64);
/// assert!((2.0f64).clamp(-2.0f64, 1.0f64) == 1.0f64);
- /// assert!((std::f64::NAN).clamp(-2.0f32, 1.0f32).is_nan());
+ /// assert!((std::f64::NAN).clamp(-2.0f32, 1.0f32).is_nan());
/// ```
#[unstable(feature = "clamp", issue = "44095")]
#[inline]
@@ -1523,4 +1523,22 @@
assert_eq!(f64::from_bits(masked_nan1).to_bits(), masked_nan1);
assert_eq!(f64::from_bits(masked_nan2).to_bits(), masked_nan2);
}
+
+ #[test]
+ #[should_panic]
+ fn test_clamp_min_greater_than_max() {
+ 1.0f64.clamp(3.0, 1.0);
+ }
+
+ #[test]
+ #[should_panic]
+ fn test_clamp_min_is_nan() {
+ 1.0f64.clamp(NAN, 1.0);
+ }
+
+ #[test]
+ #[should_panic]
+ fn test_clamp_max_is_nan() {
+ 1.0f64.clamp(3.0, NAN);
+ }
}