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