1 //! Benchmarks for strsim.
2
3 #![feature(test)]
4
5 extern crate strsim;
6 extern crate test;
7 use self::test::Bencher;
8
9 #[bench]
bench_hamming(bencher: &mut Bencher)10 fn bench_hamming(bencher: &mut Bencher) {
11 let a = "ACAAGATGCCATTGTCCCCCGGCCTCCTGCTGCTGCTGCTCTCCGGGG";
12 let b = "CCTGGAGGGTGGCCCCACCGGCCGAGACAGCGAGCATATGCAGGAAGC";
13 bencher.iter(|| {
14 strsim::hamming(a, b).unwrap();
15 })
16 }
17
18 #[bench]
bench_jaro(bencher: &mut Bencher)19 fn bench_jaro(bencher: &mut Bencher) {
20 let a = "Philosopher Friedrich Nietzsche";
21 let b = "Philosopher Jean-Paul Sartre";
22 bencher.iter(|| {
23 strsim::jaro(a, b);
24 })
25 }
26
27 #[bench]
bench_jaro_winkler(bencher: &mut Bencher)28 fn bench_jaro_winkler(bencher: &mut Bencher) {
29 let a = "Philosopher Friedrich Nietzsche";
30 let b = "Philosopher Jean-Paul Sartre";
31 bencher.iter(|| {
32 strsim::jaro_winkler(a, b);
33 })
34 }
35
36 #[bench]
bench_levenshtein(bencher: &mut Bencher)37 fn bench_levenshtein(bencher: &mut Bencher) {
38 let a = "Philosopher Friedrich Nietzsche";
39 let b = "Philosopher Jean-Paul Sartre";
40 bencher.iter(|| {
41 strsim::levenshtein(a, b);
42 })
43 }
44
45 #[bench]
bench_levenshtein_on_u8(bencher: &mut Bencher)46 fn bench_levenshtein_on_u8(bencher: &mut Bencher) {
47 bencher.iter(|| {
48 strsim::generic_levenshtein(&vec![0u8; 30], &vec![7u8; 31]);
49 })
50 }
51
52 #[bench]
bench_normalized_levenshtein(bencher: &mut Bencher)53 fn bench_normalized_levenshtein(bencher: &mut Bencher) {
54 let a = "Philosopher Friedrich Nietzsche";
55 let b = "Philosopher Jean-Paul Sartre";
56 bencher.iter(|| {
57 strsim::normalized_levenshtein(a, b);
58 })
59 }
60
61 #[bench]
bench_osa_distance(bencher: &mut Bencher)62 fn bench_osa_distance(bencher: &mut Bencher) {
63 let a = "Philosopher Friedrich Nietzsche";
64 let b = "Philosopher Jean-Paul Sartre";
65 bencher.iter(|| {
66 strsim::osa_distance(a, b);
67 })
68 }
69
70 #[bench]
bench_damerau_levenshtein(bencher: &mut Bencher)71 fn bench_damerau_levenshtein(bencher: &mut Bencher) {
72 let a = "Philosopher Friedrich Nietzsche";
73 let b = "Philosopher Jean-Paul Sartre";
74 bencher.iter(|| {
75 strsim::damerau_levenshtein(a, b);
76 })
77 }
78
79 #[bench]
bench_normalized_damerau_levenshtein(bencher: &mut Bencher)80 fn bench_normalized_damerau_levenshtein(bencher: &mut Bencher) {
81 let a = "Philosopher Friedrich Nietzsche";
82 let b = "Philosopher Jean-Paul Sartre";
83 bencher.iter(|| {
84 strsim::normalized_damerau_levenshtein(a, b);
85 })
86 }
87
88 #[bench]
bench_sorensen_dice(bencher: &mut Bencher)89 fn bench_sorensen_dice(bencher: &mut Bencher) {
90 let a = "Philosopher Friedrich Nietzsche";
91 let b = "Philosopher Jean-Paul Sartre";
92 bencher.iter(|| {
93 strsim::sorensen_dice(a, b);
94 })
95 }
96