public Form1() { InitializeComponent(); //prefixTree.AddStrings(MyFileOperation.ReadFromFileInArray("D:\\prog\\c#\\ISIT\\Dic_Big1.dic")); prefixTree.Add("куст"); prefixTree.Add("хуба"); prefixTree.Add("хуби"); prefixTree.Add("хиби"); prefixTree.Add("киба"); prefixTree.Add("Буба"); prefixTree.Add("Батя"); prefixTree.Add("Бист"); prefixTree.Add("Буст"); prefixTree.Add("Кактус"); }
/// <summary> /// Заполняет префиксное дерево из базы данных. /// </summary> /// <param name="prefixTree"></param> public void FillPrefixTree(ref PrefixTree prefixTree) { using (var context = new MyDbContext()) { List <string> itemsIncome = context.Incomes.Select(x => x.Name).ToList(); foreach (string item in itemsIncome) { prefixTree.Add(item); } } }
public async Task TestTreeAddWithSingleCharStringTerm() { // Arrange var items = new[] { "A" }; var tree = new PrefixTree(); var expected = items; // Act tree.Add(items); var actual = await tree.FindAsync(string.Empty); // Assert Assert.IsNotNull(actual); Assert.AreEqual(expected.Count(), expected.Where(actual.Contains).Count()); }
public void SearchReturnsAllAvailableSubset(string searchString, string[] expected) { var trie = new PrefixTree(); foreach (string word in MemoryDictionary) { trie.Add(word); } var results = trie.Search(searchString); Assert.IsFalse(results.Except(expected).Any()); Assert.IsFalse(expected.Except(results).Any()); }
public async Task TestTreeAddWithMultipleItemsStartedWithSamePrefix() { // Arrange var items = new[] { "AbC", "ABcD" }; var tree = new PrefixTree(); var expected = items; // Act tree.Add(items); var actual =await tree.FindAsync(string.Empty); // Assert Assert.IsNotNull(actual); Assert.AreEqual(expected.Count(), expected.Count(x => actual.Contains(x.ToUpper()))); }
public async Task TestGetItemsWithFullTerm() { // Arrange var items = new[] { "ABC" }; var tree = new PrefixTree(); tree.Add(items); var expected = items; // Act var actual =await tree.FindAsync("ABC"); // Assert Assert.IsNotNull(actual); Assert.AreEqual(expected.Count(), expected.Where(actual.Contains).Count()); }
public async Task TestGetItemsWithSingleCharAndMultipleBranches() { // Arrange var items = new[] { "ABCD", "AdCE" }; var tree = new PrefixTree(); tree.Add(items); var expected = items; // Act var actual =await tree.FindAsync("A"); // Assert Assert.IsNotNull(actual); Assert.AreEqual(expected.Count(), expected.Count(x => actual.Contains(x.ToUpper()))); }
public void TestAddNullThrowsException() { // Arrange var items = new[] { "as", null, "daf" }; var tree = new PrefixTree(); // Act tree.Add(items); }
public async Task TestFindNullThrowsException() { // Arrange var items = new[] { "ABF", "ABE" }; var tree = new PrefixTree(); tree.Add(items); // Act await tree.FindAsync(null); }
public void AddOneWord() { _tree.Add("word"); _tree.Contains("word").Should().BeTrue(); }