about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorblake2-ppc <blake2-ppc>2013-08-18 13:57:34 +0200
committerblake2-ppc <blake2-ppc>2013-08-19 11:19:59 +0200
commit548bdbaa29e0855a87ac5eec073d83babb72d8f2 (patch)
tree7db2ad1ad0c6215df0b26b501f5befca28bb8c90 /src
parent680eb71564ebba5e76ce1e1a8287b30042332cc5 (diff)
downloadrust-548bdbaa29e0855a87ac5eec073d83babb72d8f2.tar.gz
rust-548bdbaa29e0855a87ac5eec073d83babb72d8f2.zip
std::str: Bench test for char iterators
Diffstat (limited to 'src')
-rw-r--r--src/libstd/str.rs56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/libstd/str.rs b/src/libstd/str.rs
index a759b8cbd62..3d793bc8e77 100644
--- a/src/libstd/str.rs
+++ b/src/libstd/str.rs
@@ -3267,6 +3267,62 @@ mod tests {
 mod bench {
     use extra::test::BenchHarness;
     use super::*;
+    use prelude::*;
+
+    #[bench]
+    fn char_iterator(bh: &mut BenchHarness) {
+        let s = "ศไทย中华Việt Nam; Mary had a little lamb, Little lamb";
+        let len = s.char_len();
+
+        do bh.iter {
+            assert_eq!(s.iter().len(), len);
+        }
+    }
+
+    #[bench]
+    fn char_iterator_ascii(bh: &mut BenchHarness) {
+        let s = "Mary had a little lamb, Little lamb
+        Mary had a little lamb, Little lamb
+        Mary had a little lamb, Little lamb
+        Mary had a little lamb, Little lamb
+        Mary had a little lamb, Little lamb
+        Mary had a little lamb, Little lamb";
+        let len = s.char_len();
+
+        do bh.iter {
+            assert_eq!(s.iter().len(), len);
+        }
+    }
+
+    #[bench]
+    fn char_iterator_rev(bh: &mut BenchHarness) {
+        let s = "ศไทย中华Việt Nam; Mary had a little lamb, Little lamb";
+        let len = s.char_len();
+
+        do bh.iter {
+            assert_eq!(s.rev_iter().len(), len);
+        }
+    }
+
+    #[bench]
+    fn char_offset_iterator(bh: &mut BenchHarness) {
+        let s = "ศไทย中华Việt Nam; Mary had a little lamb, Little lamb";
+        let len = s.char_len();
+
+        do bh.iter {
+            assert_eq!(s.char_offset_iter().len(), len);
+        }
+    }
+
+    #[bench]
+    fn char_offset_iterator_rev(bh: &mut BenchHarness) {
+        let s = "ศไทย中华Việt Nam; Mary had a little lamb, Little lamb";
+        let len = s.char_len();
+
+        do bh.iter {
+            assert_eq!(s.char_offset_rev_iter().len(), len);
+        }
+    }
 
     #[bench]
     fn is_utf8_100_ascii(bh: &mut BenchHarness) {