4 use test::{black_box, Bencher};
7 fn test_contains_and_insert() {
8 fn do_insert(i: u32) -> bool {
12 let mut list = TinyList::new();
17 assert!(list.contains(&j));
19 assert!(!list.contains(&j));
23 assert!(!list.contains(&i));
27 assert!(list.contains(&i));
33 fn test_remove_first() {
34 let mut list = TinyList::new();
39 assert_eq!(list.len(), 4);
41 assert!(list.remove(&4));
42 assert!(!list.contains(&4));
44 assert_eq!(list.len(), 3);
45 assert!(list.contains(&1));
46 assert!(list.contains(&2));
47 assert!(list.contains(&3));
51 fn test_remove_last() {
52 let mut list = TinyList::new();
57 assert_eq!(list.len(), 4);
59 assert!(list.remove(&1));
60 assert!(!list.contains(&1));
62 assert_eq!(list.len(), 3);
63 assert!(list.contains(&2));
64 assert!(list.contains(&3));
65 assert!(list.contains(&4));
69 fn test_remove_middle() {
70 let mut list = TinyList::new();
75 assert_eq!(list.len(), 4);
77 assert!(list.remove(&2));
78 assert!(!list.contains(&2));
80 assert_eq!(list.len(), 3);
81 assert!(list.contains(&1));
82 assert!(list.contains(&3));
83 assert!(list.contains(&4));
87 fn test_remove_single() {
88 let mut list = TinyList::new();
90 assert_eq!(list.len(), 1);
92 assert!(list.remove(&1));
93 assert!(!list.contains(&1));
95 assert_eq!(list.len(), 0);
99 fn bench_insert_empty(b: &mut Bencher) {
101 let mut list = black_box(TinyList::new());
108 fn bench_insert_one(b: &mut Bencher) {
110 let mut list = black_box(TinyList::new_single(0));
117 fn bench_contains_empty(b: &mut Bencher) {
118 b.iter(|| black_box(TinyList::new()).contains(&1));
122 fn bench_contains_unknown(b: &mut Bencher) {
123 b.iter(|| black_box(TinyList::new_single(0)).contains(&1));
127 fn bench_contains_one(b: &mut Bencher) {
128 b.iter(|| black_box(TinyList::new_single(1)).contains(&1));
132 fn bench_remove_empty(b: &mut Bencher) {
133 b.iter(|| black_box(TinyList::new()).remove(&1));
137 fn bench_remove_unknown(b: &mut Bencher) {
138 b.iter(|| black_box(TinyList::new_single(0)).remove(&1));
142 fn bench_remove_one(b: &mut Bencher) {
143 b.iter(|| black_box(TinyList::new_single(1)).remove(&1));