use core::cmp;
use core::num;
+use test::Bencher;
+
#[test]
fn test_lt() {
let empty: [int, ..0] = [];
for i in range(0u, v.len()) {
assert_eq!(v.iter().nth(i).unwrap(), &v[i]);
}
+ assert_eq!(v.iter().nth(v.len()), None);
}
#[test]
#[test]
fn test_all() {
- let v: Box<&[int]> = box &[1i, 2, 3, 4, 5];
+ let v: Box<[int]> = box [1i, 2, 3, 4, 5];
assert!(v.iter().all(|&x| x < 10));
assert!(!v.iter().all(|&x| x % 2 == 0));
assert!(!v.iter().all(|&x| x > 100));
#[test]
fn test_any() {
- let v: Box<&[int]> = box &[1i, 2, 3, 4, 5];
+ let v: Box<[int]> = box [1i, 2, 3, 4, 5];
assert!(v.iter().any(|&x| x < 10));
assert!(v.iter().any(|&x| x % 2 == 0));
assert!(!v.iter().any(|&x| x > 100));
#[test]
fn test_reverse() {
let mut ys = [1i, 2, 3, 4, 5];
- ys.mut_iter().reverse_();
+ ys.iter_mut().reverse_();
assert!(ys == [5, 4, 3, 2, 1]);
}
#[test]
fn test_iterate() {
- let mut it = iterate(|x| x * 2, 1u);
+ let mut it = iterate(1u, |x| x * 2);
assert_eq!(it.next(), Some(1u));
assert_eq!(it.next(), Some(2u));
assert_eq!(it.next(), Some(4u));
assert_eq!(it.next(), Some(8u));
}
+
+#[bench]
+fn bench_rposition(b: &mut Bencher) {
+ let it: Vec<uint> = range(0u, 300).collect();
+ b.iter(|| {
+ it.iter().rposition(|&x| x <= 150);
+ });
+}
+
+#[bench]
+fn bench_skip_while(b: &mut Bencher) {
+ b.iter(|| {
+ let it = range(0u, 100);
+ let mut sum = 0;
+ it.skip_while(|&x| { sum += x; sum < 4000 }).all(|_| true);
+ });
+}
+
+#[bench]
+fn bench_multiple_take(b: &mut Bencher) {
+ let mut it = range(0u, 42).cycle();
+ b.iter(|| {
+ let n = it.next().unwrap();
+ for m in range(0u, n) {
+ it.take(it.next().unwrap()).all(|_| true);
+ }
+ });
+}