diff options
| author | bors <bors@rust-lang.org> | 2018-01-10 03:52:19 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2018-01-10 03:52:19 +0000 |
| commit | 92c32d2d8ca4dc7fb8ddf9296580b0c573350c6a (patch) | |
| tree | bf55bcc379417cdfe1370f389c123dcce9aababa /src/liballoc/tests | |
| parent | 107e65ec019ce1654d50e415dbbf742f7f1a5e15 (diff) | |
| parent | 8fbfd2c940f644cbe8358d971f6a134819eedefe (diff) | |
| download | rust-92c32d2d8ca4dc7fb8ddf9296580b0c573350c6a.tar.gz rust-92c32d2d8ca4dc7fb8ddf9296580b0c573350c6a.zip | |
Auto merge of #47308 - frewsxcv:rollup, r=frewsxcv
Rollup of 5 pull requests - Successful merges: #46762, #46777, #47262, #47285, #47301 - Failed merges:
Diffstat (limited to 'src/liballoc/tests')
| -rw-r--r-- | src/liballoc/tests/slice.rs | 51 |
1 files changed, 43 insertions, 8 deletions
diff --git a/src/liballoc/tests/slice.rs b/src/liballoc/tests/slice.rs index 85d5ce304b8..49bdc9e1b90 100644 --- a/src/liballoc/tests/slice.rs +++ b/src/liballoc/tests/slice.rs @@ -494,37 +494,72 @@ fn test_sort_stability() { } #[test] -fn test_rotate() { +fn test_rotate_left() { let expected: Vec<_> = (0..13).collect(); let mut v = Vec::new(); // no-ops v.clone_from(&expected); - v.rotate(0); + v.rotate_left(0); assert_eq!(v, expected); - v.rotate(expected.len()); + v.rotate_left(expected.len()); assert_eq!(v, expected); let mut zst_array = [(), (), ()]; - zst_array.rotate(2); + zst_array.rotate_left(2); // happy path v = (5..13).chain(0..5).collect(); - v.rotate(8); + v.rotate_left(8); assert_eq!(v, expected); let expected: Vec<_> = (0..1000).collect(); // small rotations in large slice, uses ptr::copy v = (2..1000).chain(0..2).collect(); - v.rotate(998); + v.rotate_left(998); assert_eq!(v, expected); v = (998..1000).chain(0..998).collect(); - v.rotate(2); + v.rotate_left(2); assert_eq!(v, expected); // non-small prime rotation, has a few rounds of swapping v = (389..1000).chain(0..389).collect(); - v.rotate(1000-389); + v.rotate_left(1000-389); + assert_eq!(v, expected); +} + +#[test] +fn test_rotate_right() { + let expected: Vec<_> = (0..13).collect(); + let mut v = Vec::new(); + + // no-ops + v.clone_from(&expected); + v.rotate_right(0); + assert_eq!(v, expected); + v.rotate_right(expected.len()); + assert_eq!(v, expected); + let mut zst_array = [(), (), ()]; + zst_array.rotate_right(2); + + // happy path + v = (5..13).chain(0..5).collect(); + v.rotate_right(5); + assert_eq!(v, expected); + + let expected: Vec<_> = (0..1000).collect(); + + // small rotations in large slice, uses ptr::copy + v = (2..1000).chain(0..2).collect(); + v.rotate_right(2); + assert_eq!(v, expected); + v = (998..1000).chain(0..998).collect(); + v.rotate_right(998); + assert_eq!(v, expected); + + // non-small prime rotation, has a few rounds of swapping + v = (389..1000).chain(0..389).collect(); + v.rotate_right(389); assert_eq!(v, expected); } |
