]> git.proxmox.com Git - rustc.git/blame - src/libcoretest/slice.rs
Imported Upstream version 1.1.0+dfsg1
[rustc.git] / src / libcoretest / slice.rs
CommitLineData
1a4d82fc
JJ
1// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
2// file at the top-level directory of this distribution and at
3// http://rust-lang.org/COPYRIGHT.
4//
5// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8// option. This file may not be copied, modified, or distributed
9// except according to those terms.
10
11use core::result::Result::{Ok, Err};
12
13#[test]
14fn binary_search_not_found() {
85aaf69f 15 let b = [1, 2, 4, 6, 8, 9];
1a4d82fc 16 assert!(b.binary_search_by(|v| v.cmp(&6)) == Ok(3));
85aaf69f 17 let b = [1, 2, 4, 6, 8, 9];
1a4d82fc 18 assert!(b.binary_search_by(|v| v.cmp(&5)) == Err(3));
85aaf69f 19 let b = [1, 2, 4, 6, 7, 8, 9];
1a4d82fc 20 assert!(b.binary_search_by(|v| v.cmp(&6)) == Ok(3));
85aaf69f 21 let b = [1, 2, 4, 6, 7, 8, 9];
1a4d82fc 22 assert!(b.binary_search_by(|v| v.cmp(&5)) == Err(3));
85aaf69f 23 let b = [1, 2, 4, 6, 8, 9];
1a4d82fc 24 assert!(b.binary_search_by(|v| v.cmp(&8)) == Ok(4));
85aaf69f 25 let b = [1, 2, 4, 6, 8, 9];
1a4d82fc 26 assert!(b.binary_search_by(|v| v.cmp(&7)) == Err(4));
85aaf69f 27 let b = [1, 2, 4, 6, 7, 8, 9];
1a4d82fc 28 assert!(b.binary_search_by(|v| v.cmp(&8)) == Ok(5));
85aaf69f 29 let b = [1, 2, 4, 5, 6, 8, 9];
1a4d82fc 30 assert!(b.binary_search_by(|v| v.cmp(&7)) == Err(5));
85aaf69f 31 let b = [1, 2, 4, 5, 6, 8, 9];
1a4d82fc 32 assert!(b.binary_search_by(|v| v.cmp(&0)) == Err(0));
85aaf69f 33 let b = [1, 2, 4, 5, 6, 8];
1a4d82fc
JJ
34 assert!(b.binary_search_by(|v| v.cmp(&9)) == Err(6));
35}
d9579d0f
AL
36
37#[test]
38fn test_iterator_nth() {
39 let v: &[_] = &[0, 1, 2, 3, 4];
40 for i in 0..v.len() {
41 assert_eq!(v.iter().nth(i).unwrap(), &v[i]);
42 }
43 assert_eq!(v.iter().nth(v.len()), None);
44
45 let mut iter = v.iter();
46 assert_eq!(iter.nth(2).unwrap(), &v[2]);
47 assert_eq!(iter.nth(1).unwrap(), &v[4]);
48}
49
50#[test]
51fn test_iterator_last() {
52 let v: &[_] = &[0, 1, 2, 3, 4];
53 assert_eq!(v.iter().last().unwrap(), &4);
54 assert_eq!(v[..1].iter().last().unwrap(), &0);
55}
56
57#[test]
58fn test_iterator_count() {
59 let v: &[_] = &[0, 1, 2, 3, 4];
60 assert_eq!(v.iter().count(), 5);
61
62 let mut iter2 = v.iter();
63 iter2.next();
64 iter2.next();
65 assert_eq!(iter2.count(), 3);
66}