about summary refs log tree commit diff
path: root/src/libcoretest
diff options
context:
space:
mode:
authorSamuel Neves <sneves@dei.uc.pt>2014-07-02 04:58:23 +0100
committerSamuel Neves <sneves@dei.uc.pt>2014-07-02 23:45:27 +0100
commitc0248c0839cfdf5b7030f4191ea7aed0981b9e4e (patch)
tree2e3e0ae4add8712ab32732caa46a4b4b812c43b2 /src/libcoretest
parent380657557cb3793d39dfc0d2321fc946cb3496f5 (diff)
downloadrust-c0248c0839cfdf5b7030f4191ea7aed0981b9e4e.tar.gz
rust-c0248c0839cfdf5b7030f4191ea7aed0981b9e4e.zip
Fix rotate_{left, right} for multiple of bitsize rotation amounts
Add additional rotation tests
Diffstat (limited to 'src/libcoretest')
-rw-r--r--src/libcoretest/num/int_macros.rs9
-rw-r--r--src/libcoretest/num/uint_macros.rs9
2 files changed, 18 insertions, 0 deletions
diff --git a/src/libcoretest/num/int_macros.rs b/src/libcoretest/num/int_macros.rs
index 940b036ca90..d078b514085 100644
--- a/src/libcoretest/num/int_macros.rs
+++ b/src/libcoretest/num/int_macros.rs
@@ -114,6 +114,15 @@ mod tests {
         assert_eq!(_1.rotate_left(124), _1);
         assert_eq!(_0.rotate_right(124), _0);
         assert_eq!(_1.rotate_right(124), _1);
+
+        // Rotating by 0 should have no effect
+        assert_eq!(A.rotate_left(0), A);
+        assert_eq!(B.rotate_left(0), B);
+        assert_eq!(C.rotate_left(0), C);
+        // Rotating by a multiple of word size should also have no effect
+        assert_eq!(A.rotate_left(64), A);
+        assert_eq!(B.rotate_left(64), B);
+        assert_eq!(C.rotate_left(64), C);
     }
 
     #[test]
diff --git a/src/libcoretest/num/uint_macros.rs b/src/libcoretest/num/uint_macros.rs
index 2272af67daf..aefaa90520e 100644
--- a/src/libcoretest/num/uint_macros.rs
+++ b/src/libcoretest/num/uint_macros.rs
@@ -74,6 +74,15 @@ mod tests {
         assert_eq!(_1.rotate_left(124), _1);
         assert_eq!(_0.rotate_right(124), _0);
         assert_eq!(_1.rotate_right(124), _1);
+
+        // Rotating by 0 should have no effect
+        assert_eq!(A.rotate_left(0), A);
+        assert_eq!(B.rotate_left(0), B);
+        assert_eq!(C.rotate_left(0), C);
+        // Rotating by a multiple of word size should also have no effect
+        assert_eq!(A.rotate_left(64), A);
+        assert_eq!(B.rotate_left(64), B);
+        assert_eq!(C.rotate_left(64), C);
     }
 
     #[test]