about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-11-22 03:31:37 -0800
committerbors <bors@rust-lang.org>2013-11-22 03:31:37 -0800
commit8d87e9da2146b911ded797eac1a7aa9464902617 (patch)
tree6f8f53e595d2d47670051e53309a5b7b3c10c5e5 /src/libstd
parent747213a280ac5505e2537952f1d28efceda0bfcc (diff)
parent80dff186416180423fe8117cbd19930a6c813ed9 (diff)
downloadrust-8d87e9da2146b911ded797eac1a7aa9464902617.tar.gz
rust-8d87e9da2146b911ded797eac1a7aa9464902617.zip
auto merge of #10582 : g3xzh/rust/master, r=cmr
More new benchmark tests. some of them are benchmarking `starts_with` and `ends_with`.
Let me know if I am missing something.
Thanks in advance.

Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/vec.rs72
1 files changed, 70 insertions, 2 deletions
diff --git a/src/libstd/vec.rs b/src/libstd/vec.rs
index 079d8adae58..5cc344fdfc1 100644
--- a/src/libstd/vec.rs
+++ b/src/libstd/vec.rs
@@ -3862,10 +3862,10 @@ mod bench {
     }
 
     #[bench]
-    fn add(b: &mut BenchHarness) {
+    fn add(bh: &mut BenchHarness) {
         let xs: &[int] = [5, ..10];
         let ys: &[int] = [5, ..10];
-        do b.iter() {
+        do bh.iter() {
             xs + ys;
         }
     }
@@ -3885,4 +3885,72 @@ mod bench {
             xss.connect_vec(&0);
         }
     }
+
+    #[bench]
+    fn push(bh: &mut BenchHarness) {
+        let mut vec: ~[uint] = ~[0u];
+        do bh.iter() {
+            vec.push(0);
+        }
+    }
+
+    #[bench]
+    fn starts_with_same_vector(bh: &mut BenchHarness) {
+        let vec: ~[uint] = vec::from_fn(100, |i| i);
+        do bh.iter() {
+            vec.starts_with(vec);
+        }
+    }
+
+    #[bench]
+    fn starts_with_single_element(bh: &mut BenchHarness) {
+        let vec: ~[uint] = ~[0u];
+        do bh.iter() {
+            vec.starts_with(vec);
+        }
+    }
+
+    #[bench]
+    fn starts_with_diff_one_element_at_end(bh: &mut BenchHarness) {
+        let vec: ~[uint] = vec::from_fn(100, |i| i);
+        let mut match_vec: ~[uint] = vec::from_fn(99, |i| i);
+        match_vec.push(0);
+        do bh.iter() {
+            vec.starts_with(match_vec);
+        }
+    }
+
+    #[bench]
+    fn ends_with_same_vector(bh: &mut BenchHarness) {
+        let vec: ~[uint] = vec::from_fn(100, |i| i);
+        do bh.iter() {
+            vec.ends_with(vec);
+        }
+    }
+
+    #[bench]
+    fn ends_with_single_element(bh: &mut BenchHarness) {
+        let vec: ~[uint] = ~[0u];
+        do bh.iter() {
+            vec.ends_with(vec);
+        }
+    }
+
+    #[bench]
+    fn ends_with_diff_one_element_at_beginning(bh: &mut BenchHarness) {
+        let vec: ~[uint] = vec::from_fn(100, |i| i);
+        let mut match_vec: ~[uint] = vec::from_fn(100, |i| i);
+        match_vec[0] = 200;
+        do bh.iter() {
+            vec.starts_with(match_vec);
+        }
+    }
+
+    #[bench]
+    fn contains_last_element(bh: &mut BenchHarness) {
+        let vec: ~[uint] = vec::from_fn(100, |i| i);
+        do bh.iter() {
+                vec.contains(&99u);
+        }
+    }
 }