public void Constructor_FourPatterns_CreatesCorrectTransitionTree() { // act var tree = new AhoCorasickTree(new[] { "a", "ab", "ba", "abc" }); // assert Assert.AreEqual(2, tree.Root.Transitions.Count()); var a = tree.Root.GetTransition('a'); Assert.IsNotNull(a); var ab = a.GetTransition('b'); Assert.IsNotNull(ab); var abc = ab.GetTransition('c'); Assert.IsNotNull(abc); var b = tree.Root.GetTransition('b'); Assert.IsNotNull(b); var ba = b.GetTransition('a'); Assert.IsNotNull(ba); }
public int FindAll(string input) { // arrange var tree = new AhoCorasickTree(new[] { "ab", "abc", "bcd" }); // act return(tree.FindAll(input).Count()); }
public bool ContainsThatStart(string input) { // arrange var tree = new AhoCorasickTree(new[] { "ab", "abc", "bcd" }); // act return(tree.ContainsThatStart(input)); }
public void Constructor_InputIsEmpty_ShouldHaveOnlyParentNode() { // act var tree = new AhoCorasickTree(new string[] {}); // assert CollectionAssert.IsEmpty(tree.Root.Transitions); }
public void Constructor_TreeSameLetters_HasOneTransition() { // act var tree = new AhoCorasickTree(new[] { "a", "a", "a" }); // assert Assert.AreEqual(1, tree.Root.Transitions.Count()); }
static void Main(string[] args) { var tree = new AhoCorasickTree(ResourcesUtils.GetKeywords()); for (var i = 0; i < 1000000000; i++) { tree.Contains(UserAgent); } }
public void FindKeywordAndPosition() { var keywords = new AhoCorasickTree(new[] { "Mozilla", "6.3", "KHTML", "someKeyword" }); var userAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36"; var keywordsPositions = keywords.Search(userAgent).ToList(); Assert.Equal(3, keywordsPositions.Count); Assert.Contains(new KeyValuePair <string, int>("Mozilla", 0), keywordsPositions); Assert.Contains(new KeyValuePair <string, int>("6.3", 24), keywordsPositions); Assert.Contains(new KeyValuePair <string, int>("KHTML", 56), keywordsPositions); }
public void FindKeywordAndPosition() { var keywords = new AhoCorasickTree(new[] { "Mozilla", "6.3", "KHTML", "someKeyword" }); var userAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36"; var keywordsPositions = keywords.Search(userAgent).ToList(); Assert.Equal(3, keywordsPositions.Count); Assert.Contains(new KeyValuePair<string, int>("Mozilla", 0), keywordsPositions); Assert.Contains(new KeyValuePair<string, int>("6.3", 24), keywordsPositions); Assert.Contains(new KeyValuePair<string, int>("KHTML", 56), keywordsPositions); }
public void FindKeywordAndPositionFromWikipedia() { var keywords = new AhoCorasickTree(new[] { "a", "ab", "bab", "bc", "bca", "c", "caa" }); var keywordsPositions = keywords.Search("abccab").ToList(); Assert.Equal(7, keywordsPositions.Count); Assert.Contains(new KeyValuePair<string, int>("a", 0), keywordsPositions); Assert.Contains(new KeyValuePair<string, int>("ab", 0), keywordsPositions); Assert.Contains(new KeyValuePair<string, int>("bc", 1), keywordsPositions); Assert.Contains(new KeyValuePair<string, int>("c", 2), keywordsPositions); Assert.Contains(new KeyValuePair<string, int>("c", 3), keywordsPositions); Assert.Contains(new KeyValuePair<string, int>("a", 4), keywordsPositions); Assert.Contains(new KeyValuePair<string, int>("ab", 4), keywordsPositions); }
public void FindKeywordAndPositionFromWikipedia() { var keywords = new AhoCorasickTree(new[] { "a", "ab", "bab", "bc", "bca", "c", "caa" }); var keywordsPositions = keywords.Search("abccab").ToList(); Assert.Equal(7, keywordsPositions.Count); Assert.Contains(new KeyValuePair <string, int>("a", 0), keywordsPositions); Assert.Contains(new KeyValuePair <string, int>("ab", 0), keywordsPositions); Assert.Contains(new KeyValuePair <string, int>("bc", 1), keywordsPositions); Assert.Contains(new KeyValuePair <string, int>("c", 2), keywordsPositions); Assert.Contains(new KeyValuePair <string, int>("c", 3), keywordsPositions); Assert.Contains(new KeyValuePair <string, int>("a", 4), keywordsPositions); Assert.Contains(new KeyValuePair <string, int>("ab", 4), keywordsPositions); }
public SmallTreeBenchmark() { var randomString = new RandomString(); var keywords = new string[NumberOfKeywords]; for (int i = 0; i < NumberOfKeywords; i++) { keywords[i] = randomString.GetRandomString(LengthOfKeyword); } _sut = new AhoCorasickTree(keywords); _sut2 = new AhoCorasickTreeHashBased(keywords); _keyword = keywords[0]; }
public void Contains(string str, bool expected) { var sut = new AhoCorasickTree(new[] { "ab", "abc", "bcd" }); Assert.Equal(expected, sut.Contains(str)); }
public void CanCreate() { var sut = new AhoCorasickTree(new[] { "ab", "ab" }); }
public void Test() { var sut = new AhoCorasickTree(new[] { "abcd", "bc" }); Assert.True(sut.Contains("abc")); }