Пример #1
0
        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());
        }
Пример #2
0
        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);
        }