diff options
| author | arthurprs <arthurprs@gmail.com> | 2018-01-10 20:39:11 +0100 |
|---|---|---|
| committer | arthurprs <arthurprs@gmail.com> | 2018-01-12 22:58:25 +0100 |
| commit | 0b56ab0f7b0c5e01611b7ea6a28c77bc09c26275 (patch) | |
| tree | d6a6aaefe21b618928acda7c96db004ffc331bb5 /src/libcore/tests/slice.rs | |
| parent | f62f774035735a06c880c48c0b9017fcc0577e33 (diff) | |
| download | rust-0b56ab0f7b0c5e01611b7ea6a28c77bc09c26275.tar.gz rust-0b56ab0f7b0c5e01611b7ea6a28c77bc09c26275.zip | |
Optimize slice.{r}position result bounds check
Diffstat (limited to 'src/libcore/tests/slice.rs')
| -rw-r--r-- | src/libcore/tests/slice.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/libcore/tests/slice.rs b/src/libcore/tests/slice.rs index 40e5fe5758a..d6bff43bc72 100644 --- a/src/libcore/tests/slice.rs +++ b/src/libcore/tests/slice.rs @@ -10,6 +10,25 @@ use core::result::Result::{Ok, Err}; + +#[test] +fn test_position() { + let b = [1, 2, 3, 5, 5]; + assert!(b.iter().position(|&v| v == 9) == None); + assert!(b.iter().position(|&v| v == 5) == Some(3)); + assert!(b.iter().position(|&v| v == 3) == Some(2)); + assert!(b.iter().position(|&v| v == 0) == None); +} + +#[test] +fn test_rposition() { + let b = [1, 2, 3, 5, 5]; + assert!(b.iter().rposition(|&v| v == 9) == None); + assert!(b.iter().rposition(|&v| v == 5) == Some(4)); + assert!(b.iter().rposition(|&v| v == 3) == Some(2)); + assert!(b.iter().rposition(|&v| v == 0) == None); +} + #[test] fn test_binary_search() { let b: [i32; 0] = []; |
