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