Skip to content

Commit 413f868

Browse files
author
blake2-ppc
committed
std::str: bench tests for .split_iter()
1 parent b59d503 commit 413f868

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed

src/libstd/str.rs

+83
Original file line numberDiff line numberDiff line change
@@ -3762,6 +3762,89 @@ mod bench {
37623762
}
37633763
}
37643764

3765+
#[bench]
3766+
fn split_iter_unicode_ascii(bh: &mut BenchHarness) {
3767+
let s = "ประเทศไทย中华Việt Namประเทศไทย中华Việt Nam";
3768+
3769+
do bh.iter {
3770+
assert_eq!(s.split_iter('V').len(), 3);
3771+
}
3772+
}
3773+
3774+
#[bench]
3775+
fn split_iter_unicode_not_ascii(bh: &mut BenchHarness) {
3776+
struct NotAscii(char);
3777+
impl CharEq for NotAscii {
3778+
fn matches(&self, c: char) -> bool {
3779+
**self == c
3780+
}
3781+
fn only_ascii(&self) -> bool { false }
3782+
}
3783+
let s = "ประเทศไทย中华Việt Namประเทศไทย中华Việt Nam";
3784+
3785+
do bh.iter {
3786+
assert_eq!(s.split_iter(NotAscii('V')).len(), 3);
3787+
}
3788+
}
3789+
3790+
3791+
#[bench]
3792+
fn split_iter_ascii(bh: &mut BenchHarness) {
3793+
let s = "Mary had a little lamb, Little lamb, little-lamb.";
3794+
let len = s.split_iter(' ').len();
3795+
3796+
do bh.iter {
3797+
assert_eq!(s.split_iter(' ').len(), len);
3798+
}
3799+
}
3800+
3801+
#[bench]
3802+
fn split_iter_not_ascii(bh: &mut BenchHarness) {
3803+
struct NotAscii(char);
3804+
impl CharEq for NotAscii {
3805+
#[inline]
3806+
fn matches(&self, c: char) -> bool { **self == c }
3807+
fn only_ascii(&self) -> bool { false }
3808+
}
3809+
let s = "Mary had a little lamb, Little lamb, little-lamb.";
3810+
let len = s.split_iter(' ').len();
3811+
3812+
do bh.iter {
3813+
assert_eq!(s.split_iter(NotAscii(' ')).len(), len);
3814+
}
3815+
}
3816+
3817+
#[bench]
3818+
fn split_iter_extern_fn(bh: &mut BenchHarness) {
3819+
let s = "Mary had a little lamb, Little lamb, little-lamb.";
3820+
let len = s.split_iter(' ').len();
3821+
fn pred(c: char) -> bool { c == ' ' }
3822+
3823+
do bh.iter {
3824+
assert_eq!(s.split_iter(pred).len(), len);
3825+
}
3826+
}
3827+
3828+
#[bench]
3829+
fn split_iter_closure(bh: &mut BenchHarness) {
3830+
let s = "Mary had a little lamb, Little lamb, little-lamb.";
3831+
let len = s.split_iter(' ').len();
3832+
3833+
do bh.iter {
3834+
assert_eq!(s.split_iter(|c: char| c == ' ').len(), len);
3835+
}
3836+
}
3837+
3838+
#[bench]
3839+
fn split_iter_slice(bh: &mut BenchHarness) {
3840+
let s = "Mary had a little lamb, Little lamb, little-lamb.";
3841+
let len = s.split_iter(' ').len();
3842+
3843+
do bh.iter {
3844+
assert_eq!(s.split_iter(&[' ']).len(), len);
3845+
}
3846+
}
3847+
37653848
#[bench]
37663849
fn is_utf8_100_ascii(bh: &mut BenchHarness) {
37673850

0 commit comments

Comments
 (0)