tokenizations 0.4.2

Tokenizations alignments library
Documentation
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use tokenizations;

fn get_alignments(c: &mut Criterion) {
    let mut group = c.benchmark_group("get_alignments");
    let s = black_box(vec![
        "asd",
        "asdfasdf",
        "asdfa",
        "-02 t",
        "q2-0t",
        "q -q24t0-q4t2",
    ]);
    let t = black_box(vec![
        "asd",
        "afasdf",
        "0sdfa",
        "-02t",
        "q2---0t",
        "q --:あh4t0-q4t2",
    ]);
    let u = black_box(vec![
        "zzz",
        "zzzzzz",
        "ppppp",
        "pppp",
        "ppppppp",
        "ppppppppppppppp",
    ]);

    group.bench_function("handmade short", |b| {
        b.iter(|| tokenizations::get_alignments(&s, &t))
    });

    let n = black_box(100);
    let s_long = s.repeat(n);
    let t_long = t.repeat(n);
    let u_long = u.repeat(n);
    group.bench_function("handmade long", |b| {
        b.iter(|| tokenizations::get_alignments(&s_long, &t_long))
    });

    group.bench_function("identical short", |b| {
        b.iter(|| tokenizations::get_alignments(&s, &s))
    });

    group.bench_function("identical long", |b| {
        b.iter(|| tokenizations::get_alignments(&s_long, &s_long))
    });

    group.bench_function("completely different short", |b| {
        b.iter(|| tokenizations::get_alignments(&s, &u))
    });

    group.bench_function("completely different long", |b| {
        b.iter(|| tokenizations::get_alignments(&s_long, &u_long))
    });
    group.finish()
}

criterion_group!(benches, get_alignments);
criterion_main!(benches);