void TestRemove(IHybridTrie trie, string word, int expectedCountNullResult, int expectedHeightResult) { if (!trie.IsEmpty()) { bool previewsSearchResult = trie.Search(word); int previewsCountWordsResult = trie.GetWordCount(); List <string> previewsListWordsResult = trie.GetStoredWords(); int previewsPrefixResult = trie.GetPrefixCount(word); trie.Remove(word); bool newSearchResult; int newCountWordsResult; List <string> newListWordsResult; int newCountNullResult; int newHeightResult; int newPrefixResult; if (!trie.IsEmpty()) { trie.Print(word); // display a tree for visual comparison } newSearchResult = trie.Search(word); Assert.That(previewsSearchResult == true && newSearchResult == false, Is.True); newCountWordsResult = trie.GetWordCount(); Assert.AreEqual(newCountWordsResult, previewsCountWordsResult - 1); newListWordsResult = trie.GetStoredWords(); if (previewsListWordsResult != null && newListWordsResult != null) { Assert.That(previewsListWordsResult.Contains(word) && !newListWordsResult.Contains(word), Is.True); } newCountNullResult = trie.GetNullPointerCount(); Assert.AreEqual(newCountNullResult, expectedCountNullResult); newHeightResult = trie.GetHeight(); Assert.AreEqual(newHeightResult, expectedHeightResult); newPrefixResult = trie.GetPrefixCount(word); Assert.AreEqual(newPrefixResult, previewsPrefixResult - 1); } else { Assert.That(trie.IsEmpty(), Is.True); } }
void TestCountWords(IHybridTrie trie, int expectedTrieCountWords) { int calculatedHybridTrieCountWords = trie.GetWordCount(); Assert.AreEqual(calculatedHybridTrieCountWords, expectedTrieCountWords); }