Files
galaxy/crates/warp_completer/src/completer/matchers_test.rs
T

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);
}