Skip to content

Commit

Permalink
Merge pull request #4664 from epage/suggest
Browse files Browse the repository at this point in the history
test: Verify suggestions
  • Loading branch information
epage committed Jan 23, 2023
2 parents 9f4f341 + cf970e6 commit 098a700
Showing 1 changed file with 65 additions and 11 deletions.
76 changes: 65 additions & 11 deletions src/parser/features/suggestions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -72,34 +72,88 @@ where
}
}

#[cfg(all(test, features = "suggestions"))]
#[cfg(all(test, feature = "suggestions"))]
mod test {
use super::*;

#[test]
fn possible_values_match() {
fn missing_letter() {
let p_vals = ["test", "possible", "values"];
assert_eq!(did_you_mean("tst", p_vals.iter()), Some("test"));
assert_eq!(did_you_mean("tst", p_vals.iter()), vec!["test".to_owned()]);
}

#[test]
fn possible_values_match() {
let p_vals = ["test", "temp"];
assert_eq!(did_you_mean("te", p_vals.iter()), Some("test"));
fn ambiguous() {
let p_vals = ["test", "temp", "possible", "values"];
assert_eq!(
did_you_mean("te", p_vals.iter()),
vec!["test".to_owned(), "temp".to_owned()]
);
}

#[test]
fn possible_values_nomatch() {
fn unrelated() {
let p_vals = ["test", "possible", "values"];
assert!(did_you_mean("hahaahahah", p_vals.iter()).is_none());
assert_eq!(
did_you_mean("hahaahahah", p_vals.iter()),
Vec::<String>::new()
);
}

#[test]
fn flag() {
fn best_fit() {
let p_vals = [
"test",
"possible",
"values",
"alignmentStart",
"alignmentScore",
];
assert_eq!(
did_you_mean("alignmentScorr", p_vals.iter()),
vec!["alignmentStart".to_owned(), "alignmentScore".to_owned()]
);
}

#[test]
fn flag_missing_letter() {
let p_vals = ["test", "possible", "values"];
assert_eq!(
did_you_mean_flag("tst", p_vals.iter(), []),
Some(("test", None))
did_you_mean_flag("tst", &[], p_vals.iter(), []),
Some(("test".to_owned(), None))
);
}

#[test]
fn flag_ambiguous() {
let p_vals = ["test", "temp", "possible", "values"];
assert_eq!(
did_you_mean_flag("te", &[], p_vals.iter(), []),
Some(("temp".to_owned(), None))
);
}

#[test]
fn flag_unrelated() {
let p_vals = ["test", "possible", "values"];
assert_eq!(
did_you_mean_flag("hahaahahah", &[], p_vals.iter(), []),
None
);
}

#[test]
fn flag_best_fit() {
let p_vals = [
"test",
"possible",
"values",
"alignmentStart",
"alignmentScore",
];
assert_eq!(
did_you_mean_flag("alignmentScorr", &[], p_vals.iter(), []),
Some(("alignmentScore".to_owned(), None))
);
}
}

0 comments on commit 098a700

Please sign in to comment.