public void TestTrieNodeFirstWord() { var trie = new TrieNode(); Assert.AreEqual("", trie.FirstWord()); trie.Add("table"); trie.Add("air"); trie.Add("link"); Assert.AreEqual("air", trie.FirstWord()); trie.Delete("air"); Assert.AreEqual("link", trie.FirstWord()); trie.Delete("link"); Assert.AreEqual("table", trie.FirstWord()); trie.Delete("table"); Assert.AreEqual("", trie.FirstWord()); }
public void TestTrieNode() { var root = new TrieNode(); Assert.AreEqual(1, root.NodeCount); Assert.AreEqual(0, root.WordCount); Assert.IsFalse(root.Contains("")); Assert.IsFalse(root.Contains("a")); root.Add(""); Assert.AreEqual(1, root.NodeCount); Assert.AreEqual(1, root.WordCount); Assert.IsTrue(root.Contains("")); Assert.IsFalse(root.Contains("a")); root.Add("ab"); Assert.AreEqual(3, root.NodeCount); Assert.AreEqual(2, root.WordCount); Assert.IsTrue(root.Contains("")); Assert.IsFalse(root.Contains("a")); Assert.IsFalse(root.Contains("ba")); Assert.IsTrue(root.Contains("ab")); root.Add("ac"); Assert.AreEqual(4, root.NodeCount); Assert.AreEqual(3, root.WordCount); Assert.IsTrue(root.Contains("")); Assert.IsFalse(root.Contains("a")); Assert.IsTrue(root.Contains("ab")); Assert.IsTrue(root.Contains("ac")); root.Delete("ab"); Assert.AreEqual(3, root.NodeCount); Assert.AreEqual(2, root.WordCount); Assert.IsTrue(root.Contains("")); Assert.IsFalse(root.Contains("a")); Assert.IsFalse(root.Contains("ab")); Assert.IsTrue(root.Contains("ac")); root.Delete("ac"); Assert.AreEqual(1, root.NodeCount); Assert.AreEqual(1, root.WordCount); root.Delete(""); Assert.AreEqual(1, root.NodeCount); Assert.AreEqual(0, root.WordCount); }