1c67d6573Sopenharmony_ci#![feature(test)]
2c67d6573Sopenharmony_ci
3c67d6573Sopenharmony_ciextern crate test;
4c67d6573Sopenharmony_ci
5c67d6573Sopenharmony_ciuse regex_syntax::Parser;
6c67d6573Sopenharmony_ciuse test::Bencher;
7c67d6573Sopenharmony_ci
8c67d6573Sopenharmony_ci#[bench]
9c67d6573Sopenharmony_cifn parse_simple1(b: &mut Bencher) {
10c67d6573Sopenharmony_ci    b.iter(|| {
11c67d6573Sopenharmony_ci        let re = r"^bc(d|e)*$";
12c67d6573Sopenharmony_ci        Parser::new().parse(re).unwrap()
13c67d6573Sopenharmony_ci    });
14c67d6573Sopenharmony_ci}
15c67d6573Sopenharmony_ci
16c67d6573Sopenharmony_ci#[bench]
17c67d6573Sopenharmony_cifn parse_simple2(b: &mut Bencher) {
18c67d6573Sopenharmony_ci    b.iter(|| {
19c67d6573Sopenharmony_ci        let re = r"'[a-zA-Z_][a-zA-Z0-9_]*(')\b";
20c67d6573Sopenharmony_ci        Parser::new().parse(re).unwrap()
21c67d6573Sopenharmony_ci    });
22c67d6573Sopenharmony_ci}
23c67d6573Sopenharmony_ci
24c67d6573Sopenharmony_ci#[bench]
25c67d6573Sopenharmony_cifn parse_small1(b: &mut Bencher) {
26c67d6573Sopenharmony_ci    b.iter(|| {
27c67d6573Sopenharmony_ci        let re = r"\p{L}|\p{N}|\s|.|\d";
28c67d6573Sopenharmony_ci        Parser::new().parse(re).unwrap()
29c67d6573Sopenharmony_ci    });
30c67d6573Sopenharmony_ci}
31c67d6573Sopenharmony_ci
32c67d6573Sopenharmony_ci#[bench]
33c67d6573Sopenharmony_cifn parse_medium1(b: &mut Bencher) {
34c67d6573Sopenharmony_ci    b.iter(|| {
35c67d6573Sopenharmony_ci        let re = r"\pL\p{Greek}\p{Hiragana}\p{Alphabetic}\p{Hebrew}\p{Arabic}";
36c67d6573Sopenharmony_ci        Parser::new().parse(re).unwrap()
37c67d6573Sopenharmony_ci    });
38c67d6573Sopenharmony_ci}
39c67d6573Sopenharmony_ci
40c67d6573Sopenharmony_ci#[bench]
41c67d6573Sopenharmony_cifn parse_medium2(b: &mut Bencher) {
42c67d6573Sopenharmony_ci    b.iter(|| {
43c67d6573Sopenharmony_ci        let re = r"\s\S\w\W\d\D";
44c67d6573Sopenharmony_ci        Parser::new().parse(re).unwrap()
45c67d6573Sopenharmony_ci    });
46c67d6573Sopenharmony_ci}
47c67d6573Sopenharmony_ci
48c67d6573Sopenharmony_ci#[bench]
49c67d6573Sopenharmony_cifn parse_medium3(b: &mut Bencher) {
50c67d6573Sopenharmony_ci    b.iter(|| {
51c67d6573Sopenharmony_ci        let re =
52c67d6573Sopenharmony_ci            r"\p{age:3.2}\p{hira}\p{scx:hira}\p{alphabetic}\p{sc:Greek}\pL";
53c67d6573Sopenharmony_ci        Parser::new().parse(re).unwrap()
54c67d6573Sopenharmony_ci    });
55c67d6573Sopenharmony_ci}
56c67d6573Sopenharmony_ci
57c67d6573Sopenharmony_ci#[bench]
58c67d6573Sopenharmony_cifn parse_huge(b: &mut Bencher) {
59c67d6573Sopenharmony_ci    b.iter(|| {
60c67d6573Sopenharmony_ci        let re = r"\p{L}{100}";
61c67d6573Sopenharmony_ci        Parser::new().parse(re).unwrap()
62c67d6573Sopenharmony_ci    });
63c67d6573Sopenharmony_ci}
64