about summary refs log tree commit diff
path: root/library/alloc/tests
diff options
context:
space:
mode:
authorClément Renault <clement@meilisearch.com>2020-12-10 11:17:41 +0100
committerClément Renault <clement@meilisearch.com>2020-12-10 11:20:15 +0100
commit1c55a73b750bcae1bbf05cbafbd36bce8bd993fa (patch)
treee186648709f70bb4890fac8a38d7aeff5e52904d /library/alloc/tests
parenta891f6edfeb4d7b061a215ba160fca0e4804ffd2 (diff)
downloadrust-1c55a73b750bcae1bbf05cbafbd36bce8bd993fa.tar.gz
rust-1c55a73b750bcae1bbf05cbafbd36bce8bd993fa.zip
Implement it with only safe code
Diffstat (limited to 'library/alloc/tests')
-rw-r--r--library/alloc/tests/slice.rs39
1 files changed, 29 insertions, 10 deletions
diff --git a/library/alloc/tests/slice.rs b/library/alloc/tests/slice.rs
index e2fdb5a6b5a..8f03a9240e2 100644
--- a/library/alloc/tests/slice.rs
+++ b/library/alloc/tests/slice.rs
@@ -1904,24 +1904,43 @@ fn test_group_by() {
     let slice = &[1, 1, 1, 3, 3, 2, 2, 2];
 
     let mut iter = slice.group_by(|a, b| a == b);
-
     assert_eq!(iter.next(), Some(&[1, 1, 1][..]));
-
-    assert_eq!(iter.remaining(), &[3, 3, 2, 2, 2]);
-
     assert_eq!(iter.next(), Some(&[3, 3][..]));
     assert_eq!(iter.next(), Some(&[2, 2, 2][..]));
     assert_eq!(iter.next(), None);
-}
-
-#[test]
-fn test_group_by_rev() {
-    let slice = &[1, 1, 1, 3, 3, 2, 2, 2];
 
     let mut iter = slice.group_by(|a, b| a == b);
-
     assert_eq!(iter.next_back(), Some(&[2, 2, 2][..]));
     assert_eq!(iter.next_back(), Some(&[3, 3][..]));
     assert_eq!(iter.next_back(), Some(&[1, 1, 1][..]));
     assert_eq!(iter.next_back(), None);
+
+    let mut iter = slice.group_by(|a, b| a == b);
+    assert_eq!(iter.next(), Some(&[1, 1, 1][..]));
+    assert_eq!(iter.next_back(), Some(&[2, 2, 2][..]));
+    assert_eq!(iter.next(), Some(&[3, 3][..]));
+    assert_eq!(iter.next_back(), None);
+}
+
+#[test]
+fn test_group_by_mut() {
+    let slice = &mut [1, 1, 1, 3, 3, 2, 2, 2];
+
+    let mut iter = slice.group_by_mut(|a, b| a == b);
+    assert_eq!(iter.next(), Some(&mut [1, 1, 1][..]));
+    assert_eq!(iter.next(), Some(&mut [3, 3][..]));
+    assert_eq!(iter.next(), Some(&mut [2, 2, 2][..]));
+    assert_eq!(iter.next(), None);
+
+    let mut iter = slice.group_by_mut(|a, b| a == b);
+    assert_eq!(iter.next_back(), Some(&mut [2, 2, 2][..]));
+    assert_eq!(iter.next_back(), Some(&mut [3, 3][..]));
+    assert_eq!(iter.next_back(), Some(&mut [1, 1, 1][..]));
+    assert_eq!(iter.next_back(), None);
+
+    let mut iter = slice.group_by_mut(|a, b| a == b);
+    assert_eq!(iter.next(), Some(&mut [1, 1, 1][..]));
+    assert_eq!(iter.next_back(), Some(&mut [2, 2, 2][..]));
+    assert_eq!(iter.next(), Some(&mut [3, 3][..]));
+    assert_eq!(iter.next_back(), None);
 }