diff --git a/benches/corrections.rs b/benches/corrections.rs index 1a23fce..fd5a6a4 100644 --- a/benches/corrections.rs +++ b/benches/corrections.rs @@ -12,18 +12,26 @@ fn bench_dict_correct_word(c: &mut Criterion) { let mut group = c.benchmark_group("correct_word"); { - let case = "dict_fine"; + let case = "ok"; let input = "finalizes"; group.bench_function(BenchmarkId::new("en", case), |b| { let corrections = typos_cli::dict::BuiltIn::new(typos_cli::config::Locale::En); let input = typos::tokens::Word::new(input, 0).unwrap(); #[cfg(feature = "vars")] - assert!(corrections.correct_word(input).is_none()); + assert_eq!(corrections.correct_word(input), None); + b.iter(|| corrections.correct_word(input)); + }); + #[cfg(feature = "vars")] + group.bench_function(BenchmarkId::new("en-us", case), |b| { + let corrections = typos_cli::dict::BuiltIn::new(typos_cli::config::Locale::EnUs); + let input = typos::tokens::Word::new(input, 0).unwrap(); + #[cfg(feature = "vars")] + assert_eq!(corrections.correct_word(input), Some(typos::Status::Valid)); b.iter(|| corrections.correct_word(input)); }); } { - let case = "dict_correct"; + let case = "misspell"; let input = "finallizes"; let output = "finalizes"; group.bench_function(BenchmarkId::new("en", case), |b| { @@ -37,9 +45,21 @@ fn bench_dict_correct_word(c: &mut Criterion) { ); b.iter(|| corrections.correct_word(input)); }); + #[cfg(feature = "vars")] + group.bench_function(BenchmarkId::new("en-us", case), |b| { + let corrections = typos_cli::dict::BuiltIn::new(typos_cli::config::Locale::EnUs); + let input = typos::tokens::Word::new(input, 0).unwrap(); + assert_eq!( + corrections.correct_word(input), + Some(typos::Status::Corrections(vec![ + std::borrow::Cow::Borrowed(output) + ])) + ); + b.iter(|| corrections.correct_word(input)); + }); } { - let case = "dict_correct_case"; + let case = "misspell_case"; let input = "FINALLIZES"; let output = "FINALIZES"; group.bench_function(BenchmarkId::new("en", case), |b| { @@ -56,7 +76,7 @@ fn bench_dict_correct_word(c: &mut Criterion) { } #[cfg(feature = "vars")] { - let case = "dict_to_varcon"; + let case = "varcon"; let input = "finalizes"; let output = "finalises"; group.bench_function(BenchmarkId::new("en-gb", case), |b| { @@ -71,6 +91,23 @@ fn bench_dict_correct_word(c: &mut Criterion) { b.iter(|| corrections.correct_word(input)); }); } + #[cfg(feature = "vars")] + { + let case = "misspell_varcon"; + let input = "finallizes"; + let output = "finalises"; + group.bench_function(BenchmarkId::new("en-gb", case), |b| { + let corrections = typos_cli::dict::BuiltIn::new(typos_cli::config::Locale::EnGb); + let input = typos::tokens::Word::new(input, 0).unwrap(); + assert_eq!( + corrections.correct_word(input), + Some(typos::Status::Corrections(vec![ + std::borrow::Cow::Borrowed(output) + ])) + ); + b.iter(|| corrections.correct_word(input)); + }); + } group.finish(); }