95 lines
2.3 KiB
Rust
95 lines
2.3 KiB
Rust
use crate::completer::matchers::match_type_for_case_insensitive;
|
|
|
|
use super::{Match, MatchStrategy};
|
|
|
|
#[test]
|
|
fn test_match_type_for_case_insensitive() {
|
|
assert_eq!(
|
|
match_type_for_case_insensitive("git", "git"),
|
|
Some(Match::Exact {
|
|
is_case_sensitive: true
|
|
})
|
|
);
|
|
assert_eq!(
|
|
match_type_for_case_insensitive("gIt", "git"),
|
|
Some(Match::Exact {
|
|
is_case_sensitive: false
|
|
})
|
|
);
|
|
assert_eq!(
|
|
match_type_for_case_insensitive("abc", "abcdef"),
|
|
Some(Match::Prefix {
|
|
is_case_sensitive: true
|
|
})
|
|
);
|
|
assert_eq!(
|
|
match_type_for_case_insensitive("aBc", "abcdef"),
|
|
Some(Match::Prefix {
|
|
is_case_sensitive: false
|
|
})
|
|
);
|
|
assert_eq!(match_type_for_case_insensitive("abc", "def"), None);
|
|
}
|
|
|
|
#[test]
|
|
fn test_get_match_type_case_sensitive() {
|
|
let matcher = MatchStrategy::CaseSensitive;
|
|
|
|
assert_eq!(matcher.get_match_type("git", "GIT"), None);
|
|
assert_eq!(
|
|
matcher.get_match_type("git", "git"),
|
|
Some(Match::Exact {
|
|
is_case_sensitive: true
|
|
})
|
|
);
|
|
assert_eq!(
|
|
matcher.get_match_type("AsDs", "AsDss"),
|
|
Some(Match::Prefix {
|
|
is_case_sensitive: true
|
|
})
|
|
);
|
|
assert_eq!(matcher.get_match_type("Asds", "asds"), None);
|
|
}
|
|
|
|
#[test]
|
|
fn test_get_match_type_case_insensitive() {
|
|
let matcher = MatchStrategy::CaseInsensitive;
|
|
|
|
assert_eq!(
|
|
matcher.get_match_type("git", "GIT"),
|
|
Some(Match::Exact {
|
|
is_case_sensitive: false
|
|
})
|
|
);
|
|
assert_eq!(
|
|
matcher.get_match_type("AsDs", "asdss"),
|
|
Some(Match::Prefix {
|
|
is_case_sensitive: false
|
|
})
|
|
);
|
|
assert_eq!(matcher.get_match_type("Asd", "ads"), None);
|
|
}
|
|
|
|
#[test]
|
|
fn test_get_match_type_fuzzy() {
|
|
let matcher = MatchStrategy::Fuzzy;
|
|
|
|
assert_eq!(
|
|
matcher.get_match_type("git", "GIT"),
|
|
Some(Match::Exact {
|
|
is_case_sensitive: false
|
|
})
|
|
);
|
|
assert_eq!(
|
|
matcher.get_match_type("AsDs", "asdss"),
|
|
Some(Match::Prefix {
|
|
is_case_sensitive: false
|
|
})
|
|
);
|
|
assert!(matches!(
|
|
matcher.get_match_type("abc", "aabac"),
|
|
Some(Match::Fuzzy { .. })
|
|
));
|
|
assert_eq!(matcher.get_match_type("abc", "xyz"), None);
|
|
}
|