]> git.proxmox.com Git - rustc.git/blob - src/libcollections/benches/linked_list.rs
New upstream version 1.19.0+dfsg3
[rustc.git] / src / libcollections / benches / linked_list.rs
1 // Copyright 2017 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
11 use std::collections::LinkedList;
12 use test::Bencher;
13
14 #[bench]
15 fn bench_collect_into(b: &mut Bencher) {
16 let v = &[0; 64];
17 b.iter(|| {
18 let _: LinkedList<_> = v.iter().cloned().collect();
19 })
20 }
21
22 #[bench]
23 fn bench_push_front(b: &mut Bencher) {
24 let mut m: LinkedList<_> = LinkedList::new();
25 b.iter(|| {
26 m.push_front(0);
27 })
28 }
29
30 #[bench]
31 fn bench_push_back(b: &mut Bencher) {
32 let mut m: LinkedList<_> = LinkedList::new();
33 b.iter(|| {
34 m.push_back(0);
35 })
36 }
37
38 #[bench]
39 fn bench_push_back_pop_back(b: &mut Bencher) {
40 let mut m: LinkedList<_> = LinkedList::new();
41 b.iter(|| {
42 m.push_back(0);
43 m.pop_back();
44 })
45 }
46
47 #[bench]
48 fn bench_push_front_pop_front(b: &mut Bencher) {
49 let mut m: LinkedList<_> = LinkedList::new();
50 b.iter(|| {
51 m.push_front(0);
52 m.pop_front();
53 })
54 }
55
56 #[bench]
57 fn bench_iter(b: &mut Bencher) {
58 let v = &[0; 128];
59 let m: LinkedList<_> = v.iter().cloned().collect();
60 b.iter(|| {
61 assert!(m.iter().count() == 128);
62 })
63 }
64 #[bench]
65 fn bench_iter_mut(b: &mut Bencher) {
66 let v = &[0; 128];
67 let mut m: LinkedList<_> = v.iter().cloned().collect();
68 b.iter(|| {
69 assert!(m.iter_mut().count() == 128);
70 })
71 }
72 #[bench]
73 fn bench_iter_rev(b: &mut Bencher) {
74 let v = &[0; 128];
75 let m: LinkedList<_> = v.iter().cloned().collect();
76 b.iter(|| {
77 assert!(m.iter().rev().count() == 128);
78 })
79 }
80 #[bench]
81 fn bench_iter_mut_rev(b: &mut Bencher) {
82 let v = &[0; 128];
83 let mut m: LinkedList<_> = v.iter().cloned().collect();
84 b.iter(|| {
85 assert!(m.iter_mut().rev().count() == 128);
86 })
87 }