]> git.lizzy.rs Git - rust.git/commitdiff
Add tests for saturating_abs() and saturating_neg functions
authorTobias Rapp <t.rapp@noa-archive.com>
Wed, 24 Apr 2019 15:18:29 +0000 (17:18 +0200)
committerTobias Rapp <t.rapp@noa-archive.com>
Thu, 25 Apr 2019 15:04:17 +0000 (17:04 +0200)
src/libcore/tests/lib.rs
src/libcore/tests/num/int_macros.rs

index 2e4a8a15d208874d21cfc87d25a8fe328ea193d3..a3d294e77d3bd6c4b14003e5b9a41f8693d1e97d 100644 (file)
@@ -16,6 +16,7 @@
 #![feature(pattern)]
 #![feature(range_is_empty)]
 #![feature(raw)]
+#![feature(saturating_neg)]
 #![feature(slice_patterns)]
 #![feature(sort_internals)]
 #![feature(slice_partition_at_index)]
index 92409465d7f2a0e87d621894347cd8acfa42e21e..0475aeb96ab53d167fad5a6beb03afa594ccaa46 100644 (file)
@@ -153,6 +153,32 @@ fn test_signed_checked_div() {
         assert_eq!(isize::MIN.checked_div(-1), None);
     }
 
+    #[test]
+    fn test_saturating_abs() {
+        assert_eq!((0 as $T).saturating_abs(), 0);
+        assert_eq!((123 as $T).saturating_abs(), 123);
+        assert_eq!((-123 as $T).saturating_abs(), 123);
+        assert_eq!((MAX - 2).saturating_abs(), MAX - 2);
+        assert_eq!((MAX - 1).saturating_abs(), MAX - 1);
+        assert_eq!(MAX.saturating_abs(), MAX);
+        assert_eq!((MIN + 2).saturating_abs(), MAX - 1);
+        assert_eq!((MIN + 1).saturating_abs(), MAX);
+        assert_eq!(MIN.saturating_abs(), MAX);
+    }
+
+    #[test]
+    fn test_saturating_neg() {
+        assert_eq!((0 as $T).saturating_neg(), 0);
+        assert_eq!((123 as $T).saturating_neg(), -123);
+        assert_eq!((-123 as $T).saturating_neg(), 123);
+        assert_eq!((MAX - 2).saturating_neg(), MIN + 3);
+        assert_eq!((MAX - 1).saturating_neg(), MIN + 2);
+        assert_eq!(MAX.saturating_neg(), MIN + 1);
+        assert_eq!((MIN + 2).saturating_neg(), MAX - 1);
+        assert_eq!((MIN + 1).saturating_neg(), MAX);
+        assert_eq!(MIN.saturating_neg(), MAX);
+    }
+
     #[test]
     fn test_from_str() {
         fn from_str<T: ::std::str::FromStr>(t: &str) -> Option<T> {