diff options
Diffstat (limited to 'matcher/src/pattern')
| -rw-r--r-- | matcher/src/pattern/tests.rs | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/matcher/src/pattern/tests.rs b/matcher/src/pattern/tests.rs deleted file mode 100644 index 88880ba9..00000000 --- a/matcher/src/pattern/tests.rs +++ /dev/null @@ -1,149 +0,0 @@ -use crate::pattern::{Atom, AtomKind, CaseMatching, Normalization, Pattern}; - -#[test] -fn negative() { - let pat = Atom::parse("!foo", CaseMatching::Smart, Normalization::Smart); - assert!(pat.negative); - assert_eq!(pat.kind, AtomKind::Substring); - assert_eq!(pat.needle.to_string(), "foo"); - let pat = Atom::parse("!^foo", CaseMatching::Smart, Normalization::Smart); - assert!(pat.negative); - assert_eq!(pat.kind, AtomKind::Prefix); - assert_eq!(pat.needle.to_string(), "foo"); - let pat = Atom::parse("!foo$", CaseMatching::Smart, Normalization::Smart); - assert!(pat.negative); - assert_eq!(pat.kind, AtomKind::Postfix); - assert_eq!(pat.needle.to_string(), "foo"); - let pat = Atom::parse("!^foo$", CaseMatching::Smart, Normalization::Smart); - assert!(pat.negative); - assert_eq!(pat.kind, AtomKind::Exact); - assert_eq!(pat.needle.to_string(), "foo"); -} - -#[test] -fn pattern_kinds() { - let pat = Atom::parse("foo", CaseMatching::Smart, Normalization::Smart); - assert!(!pat.negative); - assert_eq!(pat.kind, AtomKind::Fuzzy); - assert_eq!(pat.needle.to_string(), "foo"); - let pat = Atom::parse("'foo", CaseMatching::Smart, Normalization::Smart); - assert!(!pat.negative); - assert_eq!(pat.kind, AtomKind::Substring); - assert_eq!(pat.needle.to_string(), "foo"); - let pat = Atom::parse("^foo", CaseMatching::Smart, Normalization::Smart); - assert!(!pat.negative); - assert_eq!(pat.kind, AtomKind::Prefix); - assert_eq!(pat.needle.to_string(), "foo"); - let pat = Atom::parse("foo$", CaseMatching::Smart, Normalization::Smart); - assert!(!pat.negative); - assert_eq!(pat.kind, AtomKind::Postfix); - assert_eq!(pat.needle.to_string(), "foo"); - let pat = Atom::parse("^foo$", CaseMatching::Smart, Normalization::Smart); - assert!(!pat.negative); - assert_eq!(pat.kind, AtomKind::Exact); - assert_eq!(pat.needle.to_string(), "foo"); -} - -#[test] -fn case_matching() { - let pat = Atom::parse("foo", CaseMatching::Smart, Normalization::Smart); - assert!(pat.ignore_case); - assert_eq!(pat.needle.to_string(), "foo"); - let pat = Atom::parse("Foo", CaseMatching::Smart, Normalization::Smart); - assert!(!pat.ignore_case); - assert_eq!(pat.needle.to_string(), "Foo"); - let pat = Atom::parse("Foo", CaseMatching::Ignore, Normalization::Smart); - assert!(pat.ignore_case); - assert_eq!(pat.needle.to_string(), "foo"); - let pat = Atom::parse("Foo", CaseMatching::Respect, Normalization::Smart); - assert!(!pat.ignore_case); - assert_eq!(pat.needle.to_string(), "Foo"); - let pat = Atom::parse("Foo", CaseMatching::Respect, Normalization::Smart); - assert!(!pat.ignore_case); - assert_eq!(pat.needle.to_string(), "Foo"); - let pat = Atom::parse("Äxx", CaseMatching::Ignore, Normalization::Smart); - assert!(pat.ignore_case); - assert_eq!(pat.needle.to_string(), "äxx"); - let pat = Atom::parse("Äxx", CaseMatching::Respect, Normalization::Smart); - assert!(!pat.ignore_case); - let pat = Atom::parse("Axx", CaseMatching::Smart, Normalization::Smart); - assert!(!pat.ignore_case); - assert_eq!(pat.needle.to_string(), "Axx"); - let pat = Atom::parse("你xx", CaseMatching::Smart, Normalization::Smart); - assert!(pat.ignore_case); - assert_eq!(pat.needle.to_string(), "你xx"); - let pat = Atom::parse("你xx", CaseMatching::Ignore, Normalization::Smart); - assert!(pat.ignore_case); - assert_eq!(pat.needle.to_string(), "你xx"); - let pat = Atom::parse("Ⲽxx", CaseMatching::Smart, Normalization::Smart); - assert!(!pat.ignore_case); - assert_eq!(pat.needle.to_string(), "Ⲽxx"); - let pat = Atom::parse("Ⲽxx", CaseMatching::Ignore, Normalization::Smart); - assert!(pat.ignore_case); - assert_eq!(pat.needle.to_string(), "ⲽxx"); -} - -#[test] -fn escape() { - let pat = Atom::parse("foo\\ bar", CaseMatching::Smart, Normalization::Smart); - assert_eq!(pat.needle.to_string(), "foo bar"); - let pat = Atom::parse("\\!foo", CaseMatching::Smart, Normalization::Smart); - assert_eq!(pat.needle.to_string(), "!foo"); - assert_eq!(pat.kind, AtomKind::Fuzzy); - let pat = Atom::parse("\\'foo", CaseMatching::Smart, Normalization::Smart); - assert_eq!(pat.needle.to_string(), "'foo"); - assert_eq!(pat.kind, AtomKind::Fuzzy); - let pat = Atom::parse("\\^foo", CaseMatching::Smart, Normalization::Smart); - assert_eq!(pat.needle.to_string(), "^foo"); - assert_eq!(pat.kind, AtomKind::Fuzzy); - let pat = Atom::parse("foo\\$", CaseMatching::Smart, Normalization::Smart); - assert_eq!(pat.needle.to_string(), "foo$"); - assert_eq!(pat.kind, AtomKind::Fuzzy); - let pat = Atom::parse("^foo\\$", CaseMatching::Smart, Normalization::Smart); - assert_eq!(pat.needle.to_string(), "foo$"); - assert_eq!(pat.kind, AtomKind::Prefix); - let pat = Atom::parse("\\^foo\\$", CaseMatching::Smart, Normalization::Smart); - assert_eq!(pat.needle.to_string(), "^foo$"); - assert_eq!(pat.kind, AtomKind::Fuzzy); - let pat = Atom::parse("\\!^foo\\$", CaseMatching::Smart, Normalization::Smart); - assert_eq!(pat.needle.to_string(), "!^foo$"); - assert_eq!(pat.kind, AtomKind::Fuzzy); - let pat = Atom::parse("!\\^foo\\$", CaseMatching::Smart, Normalization::Smart); - assert_eq!(pat.needle.to_string(), "^foo$"); - assert_eq!(pat.kind, AtomKind::Substring); -} - -#[test] -fn pattern_atoms() { - assert_eq!( - Pattern::parse("a b", CaseMatching::Ignore, Normalization::Smart).atoms, - vec![ - Atom::parse("a", CaseMatching::Ignore, Normalization::Smart), - Atom::parse("b", CaseMatching::Ignore, Normalization::Smart), - ] - ); - - assert_eq!( - Pattern::parse("a\n b", CaseMatching::Ignore, Normalization::Smart).atoms, - vec![ - Atom::parse("a", CaseMatching::Ignore, Normalization::Smart), - Atom::parse("b", CaseMatching::Ignore, Normalization::Smart), - ] - ); - - assert_eq!( - Pattern::parse(" a b\r\n", CaseMatching::Ignore, Normalization::Smart).atoms, - vec![ - Atom::parse("a", CaseMatching::Ignore, Normalization::Smart), - Atom::parse("b", CaseMatching::Ignore, Normalization::Smart), - ] - ); - - assert_eq!( - Pattern::parse("ほ げ", CaseMatching::Smart, Normalization::Smart).atoms, - vec![ - Atom::parse("ほ", CaseMatching::Smart, Normalization::Smart), - Atom::parse("げ", CaseMatching::Smart, Normalization::Smart), - ], - ) -} |
