1use test::Bencher; 2 3use crate::{Regex, Text}; 4 5// USAGE: dna!(name, pattern, count) 6// 7// This is same as bench_find, except it always uses the regexdna haystack. 8macro_rules! dna { 9 ($name:ident, $pattern:expr, $count:expr) => { 10 bench_find!( 11 $name, 12 $pattern, 13 $count, 14 include_str!("data/regexdna.txt").to_owned() 15 ); 16 }; 17} 18 19dna!(find_new_lines, r">[^\n]*\n|\n", 83337); 20dna!(variant1, r"agggtaaa|tttaccct", 32); 21dna!(variant2, r"[cgt]gggtaaa|tttaccc[acg]", 115); 22dna!(variant3, r"a[act]ggtaaa|tttacc[agt]t", 368); 23dna!(variant4, r"ag[act]gtaaa|tttac[agt]ct", 254); 24dna!(variant5, r"agg[act]taaa|ttta[agt]cct", 466); 25dna!(variant6, r"aggg[acg]aaa|ttt[cgt]ccct", 135); 26dna!(variant7, r"agggt[cgt]aa|tt[acg]accct", 137); 27dna!(variant8, r"agggta[cgt]a|t[acg]taccct", 139); 28dna!(variant9, r"agggtaa[cgt]|[acg]ttaccct", 197); 29dna!(subst1, r"B", 29963); 30dna!(subst2, r"D", 29987); 31dna!(subst3, r"H", 30004); 32dna!(subst4, r"K", 29974); 33dna!(subst5, r"M", 29979); 34dna!(subst6, r"N", 29959); 35dna!(subst7, r"R", 30012); 36dna!(subst8, r"S", 29994); 37dna!(subst9, r"V", 29996); 38dna!(subst10, r"W", 29984); 39dna!(subst11, r"Y", 29947); 40