about summary refs log tree commit diff
path: root/src/libcore/tests/num
diff options
context:
space:
mode:
authorTobias Rapp <t.rapp@noa-archive.com>2019-04-24 17:18:29 +0200
committerTobias Rapp <t.rapp@noa-archive.com>2019-04-25 17:04:17 +0200
commitc7d47c8cf4cd4db4226a38884a2d5fad371d9330 (patch)
tree48250e528a4b6a64c13691984813fdb4e3a90526 /src/libcore/tests/num
parent8234ac32bd9002a02d7c70a989a04c2278acf78d (diff)
downloadrust-c7d47c8cf4cd4db4226a38884a2d5fad371d9330.tar.gz
rust-c7d47c8cf4cd4db4226a38884a2d5fad371d9330.zip
Add tests for saturating_abs() and saturating_neg functions
Diffstat (limited to 'src/libcore/tests/num')
-rw-r--r--src/libcore/tests/num/int_macros.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/libcore/tests/num/int_macros.rs b/src/libcore/tests/num/int_macros.rs
index 92409465d7f..0475aeb96ab 100644
--- a/src/libcore/tests/num/int_macros.rs
+++ b/src/libcore/tests/num/int_macros.rs
@@ -154,6 +154,32 @@ mod tests {
     }
 
     #[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> {
             ::std::str::FromStr::from_str(t).ok()