예제 #1
0
        public void StringKeyCanBeInsertedInTree()
        {
            var newKeys = new List <string> {
                "zoom", "antic", "b"
            };

            foreach (var key in newKeys)
            {
                var node = sampleTree.Insert(key);
                Assert.IsNotNull(node);
                Assert.AreEqual(key.Last(), node.Key);
                Assert.IsTrue(node.IsEndOfWord);
            }
        }
예제 #2
0
        public static void DoTest()
        {
            string[] words = new string[] { "cute", "cup", "at", "as", "he", "us", "i" };

            TernarySearchTree tree = new TernarySearchTree();

            tree.Insert(words);

            Assert.Equal('c', tree.Root.Value);
            Assert.Equal('h', tree.Root.GetRightChild.Value);
            Assert.Equal('e', tree.Root.GetRightChild.GetMiddleChild.Value);
            Assert.Equal('p', tree.Root.GetMiddleChild.GetMiddleChild.GetLeftChild.Value);
            Assert.Equal('s', tree.Root.GetLeftChild.GetMiddleChild.GetLeftChild.Value);
        }
        public void TernarySearchTree_Test()
        {
            var tree = new TernarySearchTree <char>();

            var testCount = 1000;

            var testStrings = new List <string>();

            while (testCount > 0)
            {
                var testString = randomString(3);
                testStrings.Add(testString);
                testCount--;
            }

            testStrings = new List <string>(testStrings.Distinct());

            foreach (var testString in testStrings)
            {
                tree.Insert(testString.ToArray());
            }

            //IEnumerable test
            Assert.AreEqual(tree.Count, tree.Count());

            foreach (var item in tree)
            {
                var existing = new string(item);
                Assert.IsTrue(testStrings.Contains(existing));
            }

            foreach (var item in testStrings)
            {
                Assert.IsTrue(tree.Contains(item.ToArray()));
            }

            foreach (var testString in testStrings)
            {
                tree.Delete(testString.ToArray());
            }
        }
        public void TernarySearchTree_Smoke_Test()
        {
            var searchTree = new TernarySearchTree <char>();

            searchTree.Insert("cat".ToCharArray());
            searchTree.Insert("cats".ToCharArray());
            searchTree.Insert("cut".ToCharArray());
            searchTree.Insert("cuts".ToCharArray());
            searchTree.Insert("up".ToCharArray());
            searchTree.Insert("bug".ToCharArray());
            searchTree.Insert("bugs".ToCharArray());

            Assert.IsTrue(searchTree.Contains("cat".ToCharArray()));
            Assert.IsTrue(searchTree.Contains("cut".ToCharArray()));
            Assert.IsFalse(searchTree.Contains("bu".ToCharArray()));

            searchTree.Delete("cuts".ToCharArray());
            Assert.IsFalse(searchTree.Contains("cuts".ToCharArray()));

            var matches = searchTree.StartsWith("u".ToCharArray());

            Assert.IsTrue(matches.Count == 1);

            matches = searchTree.StartsWith("cu".ToCharArray());
            Assert.IsTrue(matches.Count == 1);

            matches = searchTree.StartsWith("bu".ToCharArray());
            Assert.IsTrue(matches.Count == 2);

            matches = searchTree.StartsWith("c".ToCharArray());
            Assert.IsTrue(matches.Count == 3);

            matches = searchTree.StartsWith("ca".ToCharArray());
            Assert.IsTrue(matches.Count == 2);

            searchTree.Delete("cats".ToCharArray());
            searchTree.Delete("up".ToCharArray());
            searchTree.Delete("bug".ToCharArray());
            searchTree.Delete("bugs".ToCharArray());
            searchTree.Delete("cat".ToCharArray());
            searchTree.Delete("cut".ToCharArray());
        }
예제 #5
0
 public void Setup()
 {
     sampleTree = new TernarySearchTree();
     sampleKeys.ForEach(key => sampleTree.Insert(key));
 }
 public void InsertGuardTest1()
 {
     tree.Insert(null);
 }
        public void TernarySearchTree_Smoke_Test()
        {
            var tree = new TernarySearchTree <char>();

            tree.Insert("cat".ToCharArray());

            //IEnumerable test
            Assert.AreEqual(tree.Count, tree.Count());

            tree.Insert("cats".ToCharArray());

            //IEnumerable test
            Assert.AreEqual(tree.Count, tree.Count());

            tree.Insert("cut".ToCharArray());

            //IEnumerable test
            Assert.AreEqual(tree.Count, tree.Count());

            tree.Insert("cuts".ToCharArray());

            //IEnumerable test
            Assert.AreEqual(tree.Count, tree.Count());

            tree.Insert("up".ToCharArray());

            //IEnumerable test
            Assert.AreEqual(tree.Count, tree.Count());

            tree.Insert("bug".ToCharArray());

            //IEnumerable test
            Assert.AreEqual(tree.Count, tree.Count());

            tree.Insert("bugs".ToCharArray());

            //IEnumerable test
            Assert.AreEqual(tree.Count, tree.Count());

            //IEnumerable test
            Assert.AreEqual(tree.Count, tree.Count());

            Assert.IsTrue(tree.Contains("cat".ToCharArray()));
            Assert.IsTrue(tree.Contains("cut".ToCharArray()));
            Assert.IsFalse(tree.Contains("bu".ToCharArray()));
            Assert.IsTrue(tree.ContainsPrefix("bu".ToCharArray()));

            tree.Delete("cuts".ToCharArray());
            Assert.IsFalse(tree.Contains("cuts".ToCharArray()));

            var matches = tree.StartsWith("u".ToCharArray());

            Assert.IsTrue(matches.Count == 1);

            //IEnumerable test
            Assert.AreEqual(tree.Count, tree.Count());

            matches = tree.StartsWith("cu".ToCharArray());
            Assert.IsTrue(matches.Count == 1);

            matches = tree.StartsWith("bu".ToCharArray());
            Assert.IsTrue(matches.Count == 2);

            matches = tree.StartsWith("c".ToCharArray());
            Assert.IsTrue(matches.Count == 3);

            matches = tree.StartsWith("ca".ToCharArray());
            Assert.IsTrue(matches.Count == 2);

            tree.Delete("cats".ToCharArray());

            //IEnumerable test
            Assert.AreEqual(tree.Count, tree.Count());


            tree.Delete("up".ToCharArray());

            //IEnumerable test
            Assert.AreEqual(tree.Count, tree.Count());

            tree.Delete("bug".ToCharArray());

            //IEnumerable test
            Assert.AreEqual(tree.Count, tree.Count());

            tree.Delete("bugs".ToCharArray());

            //IEnumerable test
            Assert.AreEqual(tree.Count, tree.Count());

            tree.Delete("cat".ToCharArray());

            //IEnumerable test
            Assert.AreEqual(tree.Count, tree.Count());

            tree.Delete("cut".ToCharArray());

            //IEnumerable test
            Assert.AreEqual(tree.Count, tree.Count());
        }