From 0b56ab0f7b0c5e01611b7ea6a28c77bc09c26275 Mon Sep 17 00:00:00 2001 From: arthurprs Date: Wed, 10 Jan 2018 20:39:11 +0100 Subject: Optimize slice.{r}position result bounds check --- src/libcore/tests/slice.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/libcore/tests') 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] = []; -- cgit 1.4.1-3-g733a5